koprogo_api/application/ports/
user_role_repository.rs1use crate::domain::entities::UserRoleAssignment;
2use async_trait::async_trait;
3use uuid::Uuid;
4
5#[async_trait]
6pub trait UserRoleRepository: Send + Sync {
7 async fn create(&self, assignment: &UserRoleAssignment) -> Result<UserRoleAssignment, String>;
8 async fn list_for_user(&self, user_id: Uuid) -> Result<Vec<UserRoleAssignment>, String>;
9 async fn find_by_id(&self, id: Uuid) -> Result<Option<UserRoleAssignment>, String>;
10 async fn set_primary_role(
11 &self,
12 user_id: Uuid,
13 role_id: Uuid,
14 ) -> Result<UserRoleAssignment, String>;
15}