SALONUP - CORE + SETUP WIZARD + SUPER ADMIN + PLUGIN (Clienti, Servizi)
=========================================================================

NOVITA' IN QUESTA VERSIONE
----------------------------
1. Setup wizard automatico: se il sistema non e' ancora configurato
   (manca un account Super Admin), qualsiasi pagina ti reindirizza da sola
   a /setup/ invece di darti un errore.
2. Pannello Super Admin (/admin/): dashboard con statistiche piattaforma
   ed elenco/creazione negozi, separato dal gestionale dei negozi.
3. Login intelligente: se sei Super Admin vai in /admin/, se sei owner
   di un negozio vai nel gestionale come prima.
4. Prefisso tabelle configurabile (stile WordPress): nel Passo 1 del setup
   puoi scegliere un prefisso (es. salonup_) per condividere il database
   con altre applicazioni senza collisioni di nomi tabella. Se lo lasci
   vuoto, le tabelle restano senza prefisso.
5. Plugin collegati tra Super Admin e pannello negozio: un plugin puo'
   avere una pagina di impostazioni globali (admin_settings) gestita SOLO
   dal Super Admin, che cambia davvero cosa vede l'owner del negozio.
   Esempio incluso: da /admin/plugins.php -> Clienti -> Impostazioni,
   attivi/disattivi il campo "Data di nascita" nella scheda cliente.
   E' lo stesso meccanismo che useremo per Servizi, Operatori e Agenda.

SE PARTI DA ZERO
-----------------
1. Estrai "salonup" dentro C:\xampp\htdocs\
2. Crea il database salonup_dev su phpMyAdmin (vuoto, non serve importare nulla a mano)
3. Avvia Apache e MySQL da XAMPP
4. Apri http://localhost/salonup/public/
5. Il sistema ti portera' automaticamente al setup:
   - Passo 1: conferma i dati del database (default gia' pronti per XAMPP)
   - Passo 2: crea il tuo account Super Admin (nome, email, password)
6. Fatto: vai al login, entra con le credenziali Super Admin -> ti porta in /admin/
7. Da /admin/businesses.php crea i negozi veri
8. Chi si registra da /register.php sceglie il negozio e diventa Owner di quel negozio

SE HAI GIA' UN'INSTALLAZIONE PRECEDENTE (Clienti/Servizi gia' funzionanti)
-----------------------------------------------------------------------------
Non serve toccare il database: le tabelle esistenti restano SENZA prefisso,
e il sistema continua a funzionare esattamente come prima anche se il file
config/database.php che hai gia' non contiene il campo 'prefix' (il prefisso
e' opzionale e retrocompatibile: se manca, viene trattato come vuoto).
Basta sovrascrivere i file con extract.php o manualmente.
La prima volta che apri il sito ti portera' al setup per creare il tuo
account Super Admin (perche' finora non ne esisteva uno) - e' un passaggio
UNICO, i tuoi clienti/servizi/utenti gia' creati restano intatti.
NON serve rifare il Passo 1 del setup (database) in questo caso: se il
sistema rileva che il config esiste gia' e si connette, salta direttamente
al Passo 2 (crea Super Admin).

IMPORTANTE - se il tuo database esisteva GIA' prima di questa versione:
importa anche database/004_admin_settings.sql (leggi le istruzioni dentro
il file su come gestire il prefisso), altrimenti il campo Data di nascita
e le impostazioni Super Admin dei plugin non funzionano.

STRUTTURA
---------
core/            -> PluginManager, layout gestionale, layout admin
includes/        -> database, autenticazione, controllo installazione
plugins/clienti/ -> anagrafica clienti
plugins/servizi/ -> catalogo servizi
public/setup/    -> installer automatico
public/admin/    -> pannello Super Admin
public/          -> login, registrazione, dashboard negozio, logout

PROSSIMO PASSO
---------------
Plugin Operatori/Dipendenti, poi Agenda.

=========================================================================
VERSIONE CON DESIGN SYSTEM + UPLOAD PLUGIN + STAFF ADMIN
=========================================================================

NOVITA':
1. Tema chiaro (bianco/blu) e scuro (nero/grigio) - interruttore in alto
   a destra (icona sole/luna), salvato in un cookie, valido per 1 anno.
2. Layout responsive: su schermi piccoli il menu laterale diventa un
   menu a scomparsa (icona hamburger in alto).
3. CSS unico globale (assets/style.css) + possibilita' per ogni plugin
   di avere un proprio assets/style.css che si aggiunge (non sostituisce)
   quello del Core. Va servito tramite public/plugin-asset.php perche'
   la cartella plugins/ sta fuori dalla webroot per sicurezza.
4. Super Admin -> Plugin: ora puoi CARICARE/AGGIORNARE plugin da file ZIP
   direttamente dal browser, stile WordPress. Basta che lo ZIP contenga
   plugin.json, routes.php, views/. Se lo slug esiste gia', sovrascrive.
   NOTA ONESTA: questa v1 non fa backup automatico prima di sovrascrivere
   e non controlla firme/hash di sicurezza - va bene per uso tuo/pilot,
   andra' irrobustito prima di aprire l'installazione a terzi.
5. Super Admin -> Staff Admin: puoi creare altri account Super Admin.
   Il campo "Ruolo" e' per ora solo etichetta (base per permessi
   differenziati futuri, non ancora applicati/limitati davvero).

SE IL TUO DATABASE ESISTEVA GIA':
- Importa database/005_staff_role.sql (aggiunge il campo ruolo)
- Gli altri file (001-004) valgono come prima, importali solo se non
  li avevi gia' importati in precedenza

=========================================================================
VERSIONE CON AVATAR, ICONE OVUNQUE, LINK RAPIDI SUPER ADMIN
=========================================================================

NOVITA':
1. Avatar utente stile Google: cerchio colorato con iniziali (colore
   coerente per nome, calcolato automaticamente). Ogni utente puo'
   cambiarlo dalla pagina "Il mio profilo" (clic su avatar/nome nella
   sidebar): caricare una foto propria (JPG/PNG/WEBP, max 2MB) o
   scegliere tra 6 avatar preimpostati colorati.
2. Icone SVG ovunque: sidebar (icona + nome voce), pulsanti principali
   (Nuovo/Salva/Annulla/Modifica/Elimina/Archivia), form. Le icone sono
   incluse nel codice stesso (core/icons.php), nessuna libreria esterna,
   e seguono automaticamente il colore del tema chiaro/scuro.
3. Super Admin -> 3 pulsanti rapidi in alto nella sidebar (Sito web,
   Sito clienti, Gestionale), configurabili da Impostazioni. Si aprono
   in una nuova scheda. Finche' non configuri Sito web/Sito clienti
   (non ancora costruiti) restano visibili ma disattivati; il pulsante
   Gestionale punta gia' di default al login del gestionale negozi.
4. Nuova pagina Super Admin "Impostazioni" per configurare quei 3 link.
5. Footer sidebar rifatto: avatar + nome + icona logout separata.
   Cliccando su avatar o nome si va al profilo personale.

SE IL TUO DATABASE ESISTEVA GIA':
- Importa database/006_avatar.sql (aggiunge i campi avatar_type/avatar_value)
- Assicurati che la cartella public/uploads/avatars/ sia scrivibile
  (permessi 755 o 775) se vuoi permettere il caricamento foto profilo

=========================================================================
VERSIONE CON MODELLO DATI A 3 LIVELLI (identita' globale delle persone)
=========================================================================

CAMBIO ARCHITETTURALE IMPORTANTE:
Non esiste piu' una tabella "clients" separata. Ogni persona (titolare,
staff, cliente) e' una riga nella tabella globale "users". Il ruolo che
ha in un negozio specifico (owner/manager/staff/client) e' nella tabella
"business_user" - una persona puo' avere piu' righe li' (es. cliente in
un negozio E dipendente in un altro, o entrambi i ruoli nello stesso
negozio).

I 4 livelli:
1. users            -> identita' globale: nome, email, telefono, password
                       (nulla se la persona non ha accesso al pannello)
2. user_meta        -> dati opzionali globali (es. data di nascita)
3. business_user    -> la relazione: quale ruolo ha in QUEL negozio
4. business_user_meta -> dati privati di QUELLA relazione (es. le note
                       che un negozio scrive su un cliente) - MAI visibili
                       da un altro negozio, anche se e' la stessa persona

NOVITA' VISIBILI:
1. Plugin Clienti riscritto su questo modello. Se durante la creazione
   inserisci un'email gia' presente in piattaforma (es. quella persona
   e' gia' cliente altrove), il sistema collega automaticamente la stessa
   identita' invece di duplicarla.
2. Super Admin -> nuova sezione "Utenti": vede TUTTE le persone della
   piattaforma, puo' modificarle o eliminarle. NON vede le note private
   che i singoli negozi scrivono sui clienti.

SE IL TUO DATABASE ESISTEVA GIA':
IMPORTANTE - leggi bene prima di procedere:
- Importa database/007_people_model.sql
- Questo script NON migra automaticamente i dati della vecchia tabella
  "clients" (se ne avevi una) - resta li' intatta come backup, ma il
  plugin Clienti non la usa piu'. Se avevi clienti veri da conservare,
  serve una migrazione dati dedicata (richiedila prima di procedere se
  e' il tuo caso). Se stavi ancora testando senza dati da conservare,
  procedi pure e riparti con clienti puliti.

=========================================================================
VERSIONE CON CAMPI PERSONALIZZATI, IMPOSTAZIONI A SCHEDE, SETUP MIGLIORATO
=========================================================================

1. SETUP PIU' ROBUSTO
----------------------
- Il file config/database.php NON viene piu' distribuito precompilato
  (evita tentativi di connessione lenti a indirizzi finti). Se manca,
  il sistema va dritto al setup, istantaneamente.
- Nuovo pulsante "Verifica e continua" nel Passo 1: si connette e
  controlla se esistono gia' tabelle con il prefisso scelto.
- Se le tabelle esistono gia': compare un pulsante "Esporta database"
  (scarica un .sql di backup) e due opzioni:
    - "Elimina le tabelle... e reinstalla pulito" (richiede conferma)
    - "Ignora le tabelle esistenti" (non le tocca, usa quelle gia' li')

2. CAMPI PERSONALIZZATI (Super Admin -> Plugin -> Campi personalizzati)
-------------------------------------------------------------------------
Per ogni plugin (per ora implementato su Clienti) il Super Admin puo'
aggiungere/rimuovere/riordinare campi extra nel form SENZA toccare il
codice e SENZA che i campi di default vengano mai intaccati.
Ogni campo ha un "ambito": Globale (vero ovunque per la persona, es.
allergie) o Di questo negozio (privato, es. "come ci ha conosciuto").
I dati vanno automaticamente in user_meta o business_user_meta a
seconda dell'ambito scelto - stesso meccanismo gia' usato per
Data di nascita e Note.

3. IMPOSTAZIONI A SCHEDE (Super Admin -> Impostazioni)
---------------------------------------------------------
- Generale: nome della piattaforma (mostrato ovunque al posto di
  "SalonUp") e logo (mostrato in sidebar Super Admin e Gestionale)
- Link rapidi: gli stessi di prima (Sito web, Sito clienti, Gestionale)
- Backup e Ripristino: esporta un .sql completo delle tabelle SalonUp,
  o ripristina da un .sql caricato (con conferma obbligatoria, e'
  un'operazione che sovrascrive dati)

SE IL TUO DATABASE ESISTEVA GIA':
- Importa database/008_custom_fields.sql
- Il tuo config/database.php ESISTENTE non viene toccato da questo zip
  (non lo sovrascrive piu' con valori finti) - continua a funzionare
  con i tuoi dati reali gia' inseriti
