feat: Add media details sidebar and date handling features, including media grouping by date

This commit is contained in:
2025-11-16 03:32:18 +01:00
parent 94b184d3b0
commit 2003a55ff7
16 changed files with 362 additions and 52 deletions

View File

@@ -38,8 +38,8 @@ impl PostgresMediaRepository {
) -> CoreResult<()> {
sqlx::query!(
r#"
INSERT INTO media (id, owner_id, storage_path, original_filename, mime_type, hash, created_at, thumbnail_path)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
INSERT INTO media (id, owner_id, storage_path, original_filename, mime_type, hash, created_at, thumbnail_path, date_taken)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
"#,
media.id,
media.owner_id,
@@ -48,7 +48,8 @@ impl PostgresMediaRepository {
media.mime_type,
media.hash,
media.created_at,
media.thumbnail_path
media.thumbnail_path,
media.date_taken
)
.execute(exec)
.await
@@ -68,7 +69,7 @@ impl MediaRepository for PostgresMediaRepository {
PostgresMedia,
r#"
SELECT id, owner_id, storage_path, original_filename, mime_type, hash, created_at,
thumbnail_path
thumbnail_path, date_taken
FROM media
WHERE hash = $1
"#,
@@ -86,7 +87,7 @@ impl MediaRepository for PostgresMediaRepository {
PostgresMedia,
r#"
SELECT id, owner_id, storage_path, original_filename, mime_type, hash, created_at,
thumbnail_path
thumbnail_path, date_taken
FROM media
WHERE id = $1
"#,
@@ -130,7 +131,7 @@ impl MediaRepository for PostgresMediaRepository {
.await
.map_err(|e| CoreError::Database(e.to_string()))?;
let data_base_sql = "SELECT media.id, media.owner_id, media.storage_path, media.original_filename, media.mime_type, media.hash, media.created_at, media.thumbnail_path FROM media";
let data_base_sql = "SELECT media.id, media.owner_id, media.storage_path, media.original_filename, media.mime_type, media.hash, media.created_at, media.thumbnail_path, media.date_taken FROM media";
let mut data_query = sqlx::QueryBuilder::new(data_base_sql);
data_query.push(" WHERE media.owner_id = ");
data_query.push_bind(user_id);
@@ -189,7 +190,7 @@ impl MediaRepository for PostgresMediaRepository {
let data_base_sql = "
SELECT media.id, media.owner_id, media.storage_path,
media.original_filename, media.mime_type,
media.hash, media.created_at, media.thumbnail_path
media.hash, media.created_at, media.thumbnail_path, media.date_taken
FROM media
JOIN face_regions fr ON media.id = fr.media_id
";