feat: enhance album and media management with update and delete functionalities

This commit is contained in:
2025-11-02 18:46:26 +01:00
parent a36b59a5fb
commit 13bb9e6b3e
14 changed files with 334 additions and 43 deletions

View File

@@ -6,7 +6,7 @@ use crate::{
models::{Album, Media, User},
schema::{
AddMediaToAlbumData, CreateAlbumData, CreateUserData, LoginUserData, ShareAlbumData,
UploadMediaData,
UpdateAlbumData, UploadMediaData,
},
};
@@ -16,6 +16,7 @@ pub trait MediaService: Send + Sync {
async fn get_media_details(&self, id: Uuid, user_id: Uuid) -> CoreResult<Media>;
async fn list_user_media(&self, user_id: Uuid) -> CoreResult<Vec<Media>>;
async fn get_media_filepath(&self, id: Uuid, user_id: Uuid) -> CoreResult<String>;
async fn delete_media(&self, id: Uuid, user_id: Uuid) -> CoreResult<()>;
}
#[async_trait]
@@ -31,6 +32,12 @@ pub trait AlbumService: Send + Sync {
async fn get_album_details(&self, album_id: Uuid, user_id: Uuid) -> CoreResult<Album>;
async fn add_media_to_album(&self, data: AddMediaToAlbumData, user_id: Uuid) -> CoreResult<()>;
async fn list_user_albums(&self, user_id: Uuid) -> CoreResult<Vec<Album>>;
async fn share_album(&self, data: ShareAlbumData, owner_id: Uuid) -> CoreResult<()>;
async fn update_album(
&self,
album_id: Uuid,
user_id: Uuid,
data: UpdateAlbumData<'_>,
) -> CoreResult<Album>;
async fn delete_album(&self, album_id: Uuid, user_id: Uuid) -> CoreResult<()>;
}