use super::role::RoleEntity; use async_trait::async_trait; use imphnen_utils::AppError; use paginator_rs::PaginationParams; use paginator_utils::PaginatorResponse; #[async_trait] pub trait RoleRepository: Send + Sync { async fn find_all( &self, params: PaginationParams, ) -> Result, AppError>; async fn find_by_id(&self, id: String) -> Result; async fn find_by_name(&self, name: String) -> Result; async fn create(&self, entity: RoleEntity) -> Result; async fn update( &self, id: String, name: Option, permissions: Option>, ) -> Result; async fn delete(&self, id: String) -> Result; }