--- aliases: ["MediaTrack"] type: modulo parent: "MyICR Suite" --- # CLAUDE.md — MediaTrack **Versione:** v1 **Ultimo aggiornamento:** 2026-07-02 --- ## Architettura Flask + HTML/JS/CSS — modello di riferimento per tutti i nuovi moduli MyICR Suite. Modulo in produzione. --- ## Modalità Mercato Feature orientata al caso d'uso "Mercati internazionali" — completata 2026-04-15. - **MT-01** inserimento singolo prodotto dalla griglia (`?mode=single`) — prerequisito pratico per MT-02: in trasferta si inserisce un prodotto alla volta - **MT-02** modalità offline completa: tracking `is_offline_insert`, sync selettivo al rientro, backup locale DB, log JSONL di sicurezza, banner offline, shortcut desktop auto-creato - **MT-03** toggle Mercato in dashboard: forza prodotti MT + Gemma ultimi 3 anni, attivazione automatica da shortcut offline (`?mercato=true` → localStorage) **Backlog aperto — MT-03 Fase 2**: configurazione utente della Modalità Mercato (tipologie selezionabili, range anni personalizzabile, filtri distributore/contesto). Da pianificare quando emergeranno esigenze specifiche. --- ## Convenzioni dati ### AnagraficaMedia.tipo - Valore **sempre in MAIUSCOLO** (allineato alla convenzione Gemma) - Migrazione eseguita 2026-04-27: tutti i valori portati a uppercase, `SERIE` → `TELEFILM` - Valori noti: `FILM`, `DOCUMENTARIO`, `FILM-DOCUMENTARIO`, `MINISERIE`, `TELEFILM` - `get_tipologie_uniche()` usa `UPPER()` in query come safety net per la visualizzazione - Il filtro di ricerca usa `LOWER()` su entrambi i lati → corretto indipendentemente dalla case ### A_ACQUISTATO_VENDUTO (Gemma) - Campo `daily.gemma.A_ACQUISTATO_VENDUTO` esposto nella griglia prodotti - Valori attesi: `Acquistato`, `Venduto` (o NULL) - Colorazione righe: `Venduto` → sfondo rosso chiaro (`#ffcdd2`), `Acquistato` → verde chiaro (`#c8e6c9`) --- ## Sync mediatrack.db Vedi spine progetto: `MyICR_Suite/CLAUDE.md` → sezione Sync mediatrack.db.