koprogo_api/application/ports/
user_role_repository.rs

1use 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}