Aggiunge filtri/colonne (società, orari) e dettaglio leggibile; evita 422 CSRF su logout e non cancella le cover slate custom in sync prod.
Co-authored-by: Cursor <cursoragent@cursor.com>
Un avviso ha un testo per lingua; per differenziare le piattaforme si creano due avvisi. L'app riceve già il copy risolto da Accept-Language.
Co-authored-by: Cursor <cursoragent@cursor.com>
Dopo la conferma admin la card restava su «Paga con bonifico»; la società parte da Free, l'owner è staff trasmissione e le mail non bloccano se manca SMTP.
Co-authored-by: Cursor <cursoragent@cursor.com>
Il piano si attiva solo dopo la conferma admin; Stripe resta a listino se non c'è un prezzo commerciale.
Co-authored-by: Cursor <cursoragent@cursor.com>
Drain sicuro in scale-in, alert Ops su overflow e controlli admin senza abilitare il deploy in produzione.
Co-authored-by: Cursor <cursoragent@cursor.com>
Scala i nodi overflow quando gli slot calano, mantiene una spare a caldo sotto carico e spegne gli idle, disattivabile con STREAM_AUTOSCALE_ENABLED.
Co-authored-by: Cursor <cursoragent@cursor.com>
Prepara l'architettura multi-nodo (MediaMTX+ffmpeg) con assignment URL per sessione, admin di provision/drain e provider Cloud/DNS astratti verso mltv-stream.net.
Co-authored-by: Cursor <cursoragent@cursor.com>
Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua.
Co-authored-by: Cursor <cursoragent@cursor.com>