feat: Implement face clustering and media retrieval for persons
This commit is contained in:
@@ -20,6 +20,11 @@ pub trait MediaRepository: Send + Sync {
|
||||
user_id: Uuid,
|
||||
options: &ListMediaOptions,
|
||||
) -> CoreResult<(Vec<Media>, i64)>;
|
||||
async fn list_by_person_id(
|
||||
&self,
|
||||
person_id: Uuid,
|
||||
options: &ListMediaOptions,
|
||||
) -> CoreResult<(Vec<Media>, i64)>;
|
||||
async fn update_thumbnail_path(&self, id: Uuid, thumbnail_path: String) -> CoreResult<()>;
|
||||
async fn delete(&self, id: Uuid) -> CoreResult<()>;
|
||||
}
|
||||
@@ -139,4 +144,5 @@ pub trait FaceEmbeddingRepository: Send + Sync {
|
||||
&self,
|
||||
face_region_id: Uuid,
|
||||
) -> CoreResult<Option<FaceEmbedding>>;
|
||||
async fn list_unassigned_by_user(&self, user_id: Uuid) -> CoreResult<Vec<FaceEmbedding>>;
|
||||
}
|
||||
|
||||
@@ -127,6 +127,15 @@ pub trait PersonService: Send + Sync {
|
||||
face_region_id: Uuid,
|
||||
user_id: Uuid,
|
||||
) -> CoreResult<()>;
|
||||
|
||||
async fn cluster_unassigned_faces(&self, user_id: Uuid) -> CoreResult<()>;
|
||||
|
||||
async fn list_media_for_person(
|
||||
&self,
|
||||
person_id: Uuid,
|
||||
user_id: Uuid,
|
||||
options: ListMediaOptions,
|
||||
) -> CoreResult<PaginatedResponse<Media>>;
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
|
||||
Reference in New Issue
Block a user