feat: Implement face clustering and media retrieval for persons

This commit is contained in:
2025-11-15 23:39:51 +01:00
parent 0f3e098d6d
commit d444871829
9 changed files with 239 additions and 8 deletions

View File

@@ -6,9 +6,9 @@ use libertas_core::{
};
use libertas_infra::factory::{
build_album_repository, build_album_share_repository, build_database_pool,
build_face_region_repository, build_media_metadata_repository, build_media_repository,
build_person_repository, build_person_share_repository, build_tag_repository,
build_user_repository,
build_face_embedding_repository, build_face_region_repository, build_media_metadata_repository,
build_media_repository, build_person_repository, build_person_share_repository,
build_tag_repository, build_user_repository,
};
use crate::{
@@ -40,6 +40,8 @@ pub async fn build_app_state(config: AppConfig) -> CoreResult<AppState> {
let face_region_repo = build_face_region_repository(&config.database, db_pool.clone()).await?;
let person_share_repo =
build_person_share_repository(&config.database, db_pool.clone()).await?;
let face_embedding_repo =
build_face_embedding_repository(&config.database, db_pool.clone()).await?;
let hasher = Arc::new(Argon2Hasher::default());
let tokenizer = Arc::new(JwtGenerator::new(config.jwt_secret.clone()));
@@ -81,6 +83,8 @@ pub async fn build_app_state(config: AppConfig) -> CoreResult<AppState> {
person_repo.clone(),
face_region_repo.clone(),
person_share_repo.clone(),
face_embedding_repo.clone(),
media_repo.clone(),
authorization_service.clone(),
));