use super::entity::*; use async_trait::async_trait; use imphnen_utils::errors::AppError; use uuid::Uuid; #[async_trait] pub trait ChatRepository: Send + Sync { async fn find_team_messages( &self, team_id: Uuid, ) -> Result, AppError>; async fn create_message( &self, id: Uuid, team_id: Uuid, user_id: Uuid, message: &str, ) -> Result; async fn find_message_by_id( &self, id: Uuid, ) -> Result, AppError>; async fn delete_message(&self, id: Uuid) -> Result; async fn get_user_info( &self, user_id: Uuid, ) -> Result)>, AppError>; async fn is_team_member( &self, team_id: Uuid, user_id: Uuid, ) -> Result; async fn is_team_leader( &self, team_id: Uuid, user_id: Uuid, ) -> Result; }