You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gli album sono manuali. Per archivi grandi servono album che si popolano da soli in base a regole su metadati/attrezzatura/luogo/data.
Obiettivo
Smart Albums: album dinamici definiti da una query salvata, che mostrano automaticamente le foto corrispondenti.
Scope
Modello "smart album": insieme di regole (campo, operatore, valore) combinabili AND/OR. Campi: ISO, diaframma, tempo, focale, cameras/lenses/films, locations (incl. raggio km da un punto), shoot_date (range), keyword/tags.
Compilatore regole → SQL portabile (helper App\Support\Database, niente window function se target MySQL 5.7; attenzione ONLY_FULL_GROUP_BY).
UI admin per costruire/modificare le regole + anteprima conteggio risultati.
Resa in frontend come un album normale (riusa template galleria/masonry).
Caching del set risultati con invalidazione all'ingestione.
File / aree coinvolte
Nuova entità/tabella regole, app/Controllers/Admin/, viste admin album, GalleriesController/PageController lato render, query builder dedicato.
Criteri di accettazione
Posso creare "ISO ≥ 3200", "camera = Leica M", "entro 5 km da (lat,lng)", "shoot_date 2024" e vedere l'album popolarsi.
Funziona identico su SQLite e MySQL.
Performance accettabile su archivi grandi (indici + cache).
Dipendenze
Rende molto di più dopo #2 (metadati strutturati in DB) e #4 (GPS persistito).
Contesto
Gli album sono manuali. Per archivi grandi servono album che si popolano da soli in base a regole su metadati/attrezzatura/luogo/data.
Obiettivo
Smart Albums: album dinamici definiti da una query salvata, che mostrano automaticamente le foto corrispondenti.
Scope
cameras/lenses/films,locations(incl. raggio km da un punto),shoot_date(range), keyword/tags.App\Support\Database, niente window function se target MySQL 5.7; attenzioneONLY_FULL_GROUP_BY).File / aree coinvolte
app/Controllers/Admin/, viste admin album,GalleriesController/PageControllerlato render, query builder dedicato.Criteri di accettazione
Dipendenze
Rende molto di più dopo #2 (metadati strutturati in DB) e #4 (GPS persistito).