💵 Cassa 🍳 Cucina e Consegna 🍽️ Gestione Menu 📊 Resoconto ⏱️ Statistiche Tempi ⚙️ Impostazioni

## 🌐 Stato Sagra e Ordinazioni Online

Abilita o disabilita le ordinazioni dal portale clienti. Se disattivata, il menu clienti si trasformerà in modalità di sola consultazione (senza carrello o tasti di acquisto).

Abilita Ordinazioni Online (Sagra Attiva)

## 🖨️ Impostazioni Stampa Scontrini

Configura se attivare l'apertura automatica di stampa del browser e regola i ritardi di spooler necessari alla tua stampante termica.

Abilita Stampa Automatica Scontrini
Abilita Stampa Sequenziale (Lenta - solo per vecchie stampanti)
Ritardo Pre-Stampa (ms)

Pausa prima di stampare per consentire il rendering HTML.

Ritardo Post-Stampa / Taglio (ms)

Tempo per permettere lo spool e il taglio fisico della carta tra le stampe.

## 🎫 Stampante Termica Totem (Stampa da Server)

Configura l'indirizzo IP della stampante termica di rete dedicata al Totem Self-Service (permette la stampa istantanea anche da Tablet iPad e Android senza finestre di dialogo).

Indirizzo IP Stampante Termica (es. 192.168.1.200)
Porta TCP ESC/POS (Predefinita: 9100)

## 💳 Metodi di Pagamento & Gateway

Configura quali canali di pagamento abilitare per i clienti (Menu Smart) e imposta le credenziali per i gateway digitali.

Ambiente di Esecuzione Pagamenti
Canali di Pagamento Visibili ai Clienti:
🏪 Paga in Cassa Tradizionale (Contanti / POS Cassa)
💳 Stripe (Apple Pay, Google Pay, Carte di Credito)
🔴 Satispay Business (Deep Link & App)
Stripe Publishable Key (pk_test_... / pk_live_...)
Stripe Secret Key (sk_test_... / sk_live_...)
Stripe Webhook Signing Secret (whsec_...)
Richiesto per validare la firma crittografica HMAC degli eventi Webhook.
💡 Test locale con Stripe CLI:
Per inoltrare i webhook durante lo sviluppo sul tuo computer:
`stripe listen --forward-to localhost:8082/api/payments/stripe/webhook`
Satispay Security Bearer Token

## 📺 Gestione Monitor TV & Tabellone

Associa e configura le Smart TV visualizzatrici per il pubblico e per i reparti.

📺 Come collegare una nuova TV:
1. Apri il browser sulla TV all'indirizzo: /display.html
2. Inserisci qui sotto il codice a 4 cifre mostrato a schermo per abbinarla.

### Monitor Registrati

Caricamento monitor...

## 📁 Database & Sincronizzazione

ℹ️ Come funziona il sistema a due componenti

Il sistema è composto da due server che girano in coppia, non in alternativa:

☁️
Server remoto (NAS o cloud, sempre in rete) — riceve gli ordini dai clienti via QR code e Internet, li salva nel database MySQL. I clienti non vedono mai questo Mac.
💻
PC in cassa (in LAN) — ogni 10 secondi scarica i nuovi ordini dal NAS nel proprio file SQLite locale. Cassa e cucina lavorano su questo database locale. Gli aggiornamenti di stato vengono poi rispediti al NAS (e quindi ai clienti).

Qui sotto configuri il ruolo di questo specifico server/PC — quale dei due stai configurando adesso.

Scegli server
💻
Dove vengono salvati gli ordini
📂

Determinato automaticamente dalla modalita selezionata sopra. Non e modificabile separatamente.

Nome del file database

Il file viene creato automaticamente nella cartella del programma se non esiste.

Configurazione del PC Locale
📶 Modalità Solo Locale (Offline - LAN) Il PC locale funziona in totale autonomia. Cassa e cucina lavorano sulla rete locale (Wi-Fi/LAN) senza alcuna sincronizzazione cloud o necessità di Internet.
🔄 Modalità Ibrida (Sincronizzazione Cloud) Consente la ricezione di ordini online effettuati via Internet dagli smartphone dei clienti tramite QR Code. Richiede connessione Internet attiva.

#### ⚙️ Configurazione Cloud Target

Sincronizza con (Target remoto)

Scegli il server remoto esterno con cui questo PC locale sincronizzerà gli ordini.

Scegli server remoto da configurare

#### 📶 Parametri di Accesso al Server

Indirizzo URL del Server
Porta del server web — porta locale su cui risponde il server (default: 8082)
Token di Sincronizzazione
URL Menu Clienti (per QR Code)

#### 🛢️ Database MySQL Corrispondente

Indirizzo del server MySQL (Host)
Porta MySQL
Utente MySQL
Password MySQL
Nome del database MySQL
⚠️ Riavvio necessario: dopo aver salvato queste impostazioni, devi riavviare il server affinche le modifiche abbiano effetto.

## 💾 Gestione Backup

Esporta la configurazione e il database correnti per renderli portabili e utilizzabili su un nuovo computer, oppure ripristina un backup.

### 💻 Backup Locale (USB / File)

👉 Esporta Backup: Genera un file `sagra_backup.zip` contenente il database SQLite (menu, utenti, vendite) e il file `settings.json` di questo PC.
⚠️ Importa Backup: Seleziona un file di backup `.zip` locale. L'operazione sovrascriverà il database locale e la configurazione, dopodiché il server verrà riavviato automaticamente.

### ☁️ Backup Cloud (NAS / Aruba)

👉 Salva Backup sul Cloud: Invia una copia dei parametri di questa cassa al server remoto (Aruba o NAS). Potrà essere scaricata da un nuovo PC usando il Token di Sincronizzazione.
⚠️ Ripristina da Server Remoto: Inserisci i parametri del server cloud per scaricare ed estrarre il backup precedentemente salvato.
URL Server Remoto (Aruba / NAS)
Token di Sincronizzazione Remoto

## ⚠️ Zona Pericolosa

Azioni distruttive e irreversibili destinate esclusivamente al Super Amministratore. Procedi con estrema cautela.

👉 Eliminazione Permanente Ordini Remoti: Questa azione eliminerà in modo permanente tutti gli ordini (tabella `orders`) e le voci dei piatti (tabella `order_items`) presenti sul database remoto MySQL (NAS/Aruba). Il database locale di questa cassa non subirà modifiche.
👉 Eliminazione Permanente Ordini Locali: Questa azione eliminerà in modo permanente tutti gli ordini (tabella `orders`) e le voci dei piatti (tabella `order_items`) presenti sul database SQLite locale di questa cassa. Il database remoto non subirà modifiche.
👉 Elimina Ordini per Giornata: Questa azione eliminerà permanentemente tutti gli ordini e i piatti della data selezionata dal database locale.

## 👥 Gestione Profilazione

Gestisci gli account degli operatori (Amministratori, Cassieri, Cucina) e assegna i settori.

Caricamento utenti...

### ➕ Aggiungi Nuovo Utente

Nome Utente *
Password *
Ruolo *
Settore di Competenza *

### Conferma Operazione

Sei sicuro di voler procedere?