feat: add functionality to remove media from album, including API integration and UI context menu

This commit is contained in:
2025-11-16 01:47:36 +01:00
parent 07b797b82b
commit f41a3169e9
9 changed files with 169 additions and 17 deletions

View File

@@ -49,6 +49,7 @@ pub trait AlbumRepository: Send + Sync {
async fn list_media_by_album_id(&self, album_id: Uuid) -> CoreResult<Vec<Media>>;
async fn is_media_in_public_album(&self, media_id: Uuid) -> CoreResult<bool>;
async fn set_thumbnail_media_id(&self, album_id: Uuid, media_id: Uuid) -> CoreResult<()>;
async fn remove_media_from_album(&self, album_id: Uuid, media_ids: &[Uuid]) -> CoreResult<()>;
}
#[async_trait]

View File

@@ -121,3 +121,8 @@ impl<T> PaginatedResponse<T> {
}
}
}
#[derive(serde::Deserialize)]
pub struct RemoveMediaFromAlbumRequest {
pub media_ids: Vec<uuid::Uuid>,
}

View File

@@ -59,6 +59,12 @@ pub trait AlbumService: Send + Sync {
user_id: Uuid,
) -> CoreResult<()>;
async fn get_album_media(&self, album_id: Uuid, user_id: Uuid) -> CoreResult<Vec<Media>>;
async fn remove_media_from_album(
&self,
album_id: Uuid,
media_ids: &[Uuid],
user_id: Uuid,
) -> CoreResult<()>;
}
#[async_trait]