feat: implement media listing with sorting and filtering options

This commit is contained in:
2025-11-04 05:57:04 +01:00
parent ab8eeb882e
commit eaf4c90fa8
18 changed files with 238 additions and 39 deletions

View File

@@ -3,7 +3,7 @@ use uuid::Uuid;
use crate::{
error::CoreResult,
models::{Album, AlbumPermission, Media, User},
models::{Album, AlbumPermission, Media, User}, schema::ListMediaOptions,
};
#[async_trait]
@@ -11,7 +11,7 @@ pub trait MediaRepository: Send + Sync {
async fn find_by_hash(&self, hash: &str) -> CoreResult<Option<Media>>;
async fn create(&self, media: &Media) -> CoreResult<()>;
async fn find_by_id(&self, id: Uuid) -> CoreResult<Option<Media>>;
async fn list_by_user(&self, user_id: Uuid) -> CoreResult<Vec<Media>>;
async fn list_by_user(&self, user_id: Uuid, options: &ListMediaOptions) -> CoreResult<Vec<Media>>;
async fn update_metadata(
&self,
id: Uuid,