feat: Add media details sidebar and date handling features, including media grouping by date
This commit is contained in:
@@ -52,6 +52,7 @@ pub struct PostgresMedia {
|
||||
pub hash: String,
|
||||
pub created_at: chrono::DateTime<chrono::Utc>,
|
||||
pub thumbnail_path: Option<String>,
|
||||
pub date_taken: Option<chrono::DateTime<chrono::Utc>>,
|
||||
}
|
||||
|
||||
#[derive(sqlx::FromRow)]
|
||||
|
||||
@@ -87,6 +87,7 @@ impl From<PostgresMedia> for Media {
|
||||
hash: pg_media.hash,
|
||||
created_at: pg_media.created_at,
|
||||
thumbnail_path: pg_media.thumbnail_path,
|
||||
date_taken: pg_media.date_taken,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ impl AlbumRepository for PostgresAlbumRepository {
|
||||
PostgresMedia,
|
||||
r#"
|
||||
SELECT m.id, m.owner_id, m.storage_path, m.original_filename, m.mime_type,
|
||||
m.hash, m.created_at, m.thumbnail_path
|
||||
m.hash, m.created_at, m.thumbnail_path, m.date_taken
|
||||
FROM media m
|
||||
JOIN album_media am ON m.id = am.media_id
|
||||
WHERE am.album_id = $1
|
||||
|
||||
@@ -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
|
||||
";
|
||||
|
||||
Reference in New Issue
Block a user