/* ============================================================
   MOCK DATA — Smart Fleet Menabue
   ============================================================ */

// ---- Commercial states ------------------------------------
const STATI = {
  DISPONIBILE:     { label: "Disponibile",     color: "var(--st-disponibile)",  bg: "#e8f6f0" },
  IN_ARRIVO:       { label: "In arrivo",       color: "var(--st-inarrivo)",     bg: "#e9f0fa" },
  PRENOTATO:       { label: "Prenotato",       color: "var(--st-prenotato)",    bg: "#fdf0e0" },
  IN_TRATTATIVA:   { label: "In trattativa",   color: "var(--st-trattativa)",   bg: "#f1ebfb" },
  VENDUTO:         { label: "Venduto",         color: "var(--st-venduto)",      bg: "#eceef0" },
  NOLEGGIATO:      { label: "Noleggiato",      color: "var(--st-noleggiato)",   bg: "#e4f5f8" },
  DA_VERIFICARE:   { label: "Da verificare",   color: "var(--st-daverificare)", bg: "#faf4e0" },
  IN_PREPARAZIONE: { label: "In preparazione", color: "var(--st-preparazione)", bg: "#eaecfa" },
  ARCHIVIATO:      { label: "Archiviato",      color: "var(--st-archiviato)",   bg: "#eceef0" },
  NON_VISIBILE:    { label: "Non visibile",    color: "var(--st-nonvisibile)",  bg: "#f1f2f4" },
};

const DESTINAZIONI = ["Vendita", "STR", "LTR", "Pronta consegna", "Prova"];

// ---- Roles -------------------------------------------------
const RUOLI = {
  commerciale: { key:"commerciale", label:"Commerciale", color:"var(--role-commerciale)", desc:"Consulta, prenota, segue i mezzi" },
  backoffice:  { key:"backoffice",  label:"Back Office",  color:"var(--role-backoffice)",  desc:"Gestione stati, prenotazioni, dati operativi" },
  admin:       { key:"admin",       label:"Admin",        color:"var(--role-admin)",       desc:"Controllo completo: prodotti, prezzi, utenti" },
  cliente:     { key:"cliente",     label:"Cliente",      color:"var(--role-cliente)",     desc:"Accesso in sola lettura" },
};

// ---- Categories --------------------------------------------
const CATEGORIE = [
  { id:"carrelli", nome:"Movimentazione", icon:"forklift",
    sub:[],
    attrs:["Portata","Alt. sollevamento","Montante","Anno","Ore lavoro","Batteria","Stato batteria","Forche","Accessori"] },
  { id:"pulizia", nome:"Macchine Pulizia", icon:"broom",
    sub:[],
    attrs:["Larg. lavoro","Resa oraria","Cap. serbatoio","Alimentazione","Tipo operatore"] },
  { id:"piattaforme", nome:"Piattaforme Aeree", icon:"lift",
    sub:[],
    attrs:["Altezza lavoro","Portata cesta","Sbraccio"] },
  { id:"avvolgitrici", nome:"Macchine Avvolgitrici", icon:"wrap",
    sub:[],
    attrs:["Tipologia","Dimensioni pallet","Alt. avvolgimento","Alimentazione"] },
];

// ---- Products ----------------------------------------------
const PRODOTTI = [
  { id:"U245", cat:"carrelli", sub:"Frontali elettrici", marca:"Toyota", modello:"8FBM20T",
    stato:"DISPONIBILE", dest:"Vendita", liste:["Vendita","LTR"], posizione:"Piazzale A — Fila 3", nuovo:false, gallery:4,
    prezzoConsigliato:14900, prezzoMinimo:12400, prezzoGiorno:48, prezzoMese:780,
    simBatteria:3200,
    attr:{ "Portata":"2.000 kg","Alt. sollevamento":"4.700 mm","Montante":"Triplex","Anno":"2019","Ore lavoro":"6.420 h","Batteria":"48V / 500Ah","Stato batteria":"Buono (78%)","Forche":"1.150 mm","Accessori":"Traslatore" } },

  { id:"U312", cat:"carrelli", sub:"Frontali elettrici", marca:"Linde", modello:"E25",
    stato:"PRENOTATO", dest:"Vendita", liste:["Vendita"], posizione:"Piazzale A — Fila 1", nuovo:false, gallery:3,
    prezzoConsigliato:18500, prezzoMinimo:16000, prezzoGiorno:55, prezzoMese:890,
    simBatteria:3600,
    attr:{ "Portata":"2.500 kg","Alt. sollevamento":"5.000 mm","Montante":"Triplex","Anno":"2020","Ore lavoro":"4.110 h","Batteria":"80V / 620Ah","Stato batteria":"Ottimo (88%)","Forche":"1.200 mm","Accessori":"Traslatore + 4ª via" } },

  { id:"N108", cat:"carrelli", sub:"Retrattili", marca:"Still", modello:"RX20-16",
    stato:"DISPONIBILE", dest:"Pronta consegna", liste:["Pronta consegna","Vendita"], posizione:"Showroom", nuovo:true, gallery:5,
    prezzoConsigliato:24900, prezzoMinimo:22500, prezzoGiorno:62, prezzoMese:990,
    simBatteria:null,
    attr:{ "Portata":"1.600 kg","Alt. sollevamento":"4.350 mm","Montante":"Duplex","Anno":"2025","Ore lavoro":"0 h","Batteria":"48V / 460Ah Li-Ion","Stato batteria":"Nuovo","Forche":"1.150 mm","Accessori":"Cabina invernale" } },

  { id:"S077", cat:"carrelli", sub:"Frontali elettrici", marca:"Jungheinrich", modello:"EFG 218",
    stato:"NOLEGGIATO", dest:"STR", liste:["STR"], posizione:"Cliente — Logistica Rossi", nuovo:false, gallery:2,
    prezzoConsigliato:null, prezzoMinimo:null, prezzoGiorno:44, prezzoMese:720,
    simBatteria:null,
    attr:{ "Portata":"1.800 kg","Alt. sollevamento":"4.500 mm","Montante":"Triplex","Anno":"2022","Ore lavoro":"2.030 h","Batteria":"48V / 500Ah","Stato batteria":"Ottimo (91%)","Forche":"1.150 mm","Accessori":"—" } },

  { id:"U401", cat:"carrelli", sub:"Frontali diesel", marca:"Yale", modello:"GDP25",
    stato:"IN_TRATTATIVA", dest:"Vendita", liste:["Vendita","LTR"], posizione:"Piazzale B — Fila 2", nuovo:false, gallery:3,
    prezzoConsigliato:16200, prezzoMinimo:13900, prezzoGiorno:50, prezzoMese:810,
    simBatteria:null,
    attr:{ "Portata":"2.500 kg","Alt. sollevamento":"4.500 mm","Montante":"Duplex","Anno":"2018","Ore lavoro":"8.900 h","Batteria":"Diesel","Stato batteria":"—","Forche":"1.200 mm","Accessori":"Posizionatore forche" } },

  { id:"N142", cat:"carrelli", sub:"Frontali elettrici", marca:"Toyota", modello:"Traigo 80",
    stato:"IN_ARRIVO", dest:"Pronta consegna", liste:["Pronta consegna"], posizione:"In transito", nuovo:true, gallery:2,
    prezzoConsigliato:31500, prezzoMinimo:28800, prezzoGiorno:74, prezzoMese:1180,
    simBatteria:null,
    attr:{ "Portata":"3.000 kg","Alt. sollevamento":"5.500 mm","Montante":"Triplex","Anno":"2025","Ore lavoro":"0 h","Batteria":"80V / 700Ah","Stato batteria":"Nuovo","Forche":"1.200 mm","Accessori":"Telecamera retro" } },

  { id:"U188", cat:"carrelli", sub:"Transpallet elettrici", marca:"OM", modello:"XE25",
    stato:"DA_VERIFICARE", dest:"Vendita", liste:["Vendita"], posizione:"Officina", nuovo:false, gallery:1,
    prezzoConsigliato:11500, prezzoMinimo:9800, prezzoGiorno:40, prezzoMese:640,
    simBatteria:2900,
    attr:{ "Portata":"2.500 kg","Alt. sollevamento":"3.300 mm","Montante":"Duplex","Anno":"2016","Ore lavoro":"11.200 h","Batteria":"48V / 465Ah","Stato batteria":"Da verificare","Forche":"1.150 mm","Accessori":"—" } },

  { id:"P220", cat:"pulizia", sub:"Lavasciuga uomo a bordo", marca:"Comac", modello:"Ultra 100 BS",
    stato:"DISPONIBILE", dest:"Vendita", liste:["Vendita"], posizione:"Magazzino Pulizia", nuovo:false, gallery:3,
    prezzoConsigliato:8900, prezzoMinimo:7400, prezzoGiorno:35, prezzoMese:560,
    simBatteria:null,
    attr:{ "Larg. lavoro":"1.000 mm","Resa oraria":"6.300 m²/h","Cap. serbatoio":"100 L","Alimentazione":"Batteria","Tipo operatore":"Uomo a bordo" } },

  { id:"P231", cat:"pulizia", sub:"Lavasciuga uomo a terra", marca:"Nilfisk", modello:"SC500",
    stato:"DISPONIBILE", dest:"Pronta consegna", liste:["Pronta consegna","Vendita"], posizione:"Magazzino Pulizia", nuovo:true, gallery:2,
    prezzoConsigliato:4200, prezzoMinimo:3600, prezzoGiorno:22, prezzoMese:330,
    simBatteria:null,
    attr:{ "Larg. lavoro":"530 mm","Resa oraria":"2.650 m²/h","Cap. serbatoio":"40 L","Alimentazione":"Batteria Li-Ion","Tipo operatore":"Uomo a piedi" } },

  { id:"P244", cat:"pulizia", sub:"Spazzatrice uomo a bordo", marca:"RCM", modello:"Macro",
    stato:"PRENOTATO", dest:"Vendita", liste:["Vendita"], posizione:"Magazzino Pulizia", nuovo:false, gallery:2,
    prezzoConsigliato:12400, prezzoMinimo:10800, prezzoGiorno:42, prezzoMese:690,
    simBatteria:null,
    attr:{ "Larg. lavoro":"1.400 mm","Resa oraria":"11.500 m²/h","Cap. serbatoio":"70 L","Alimentazione":"Diesel","Tipo operatore":"Uomo a bordo" } },

  { id:"A015", cat:"piattaforme", sub:"", marca:"JLG", modello:"E450AJ",
    stato:"DISPONIBILE", dest:"STR", liste:["STR","LTR"], posizione:"Piazzale C", nuovo:false, gallery:3,
    prezzoConsigliato:26500, prezzoMinimo:23000, prezzoGiorno:95, prezzoMese:1450,
    simBatteria:null,
    attr:{ "Altezza lavoro":"15,7 m","Portata cesta":"230 kg","Sbraccio":"7,5 m" } },

  { id:"A022", cat:"piattaforme", sub:"", marca:"Genie", modello:"Z-45",
    stato:"IN_PREPARAZIONE", dest:"Vendita", liste:["Vendita"], posizione:"Officina", nuovo:false, gallery:2,
    prezzoConsigliato:29900, prezzoMinimo:26500, prezzoGiorno:105, prezzoMese:1590,
    simBatteria:null,
    attr:{ "Altezza lavoro":"16,0 m","Portata cesta":"227 kg","Sbraccio":"7,6 m" } },

  { id:"W003", cat:"avvolgitrici", sub:"", marca:"Robopac", modello:"Rotoplat 508",
    stato:"DISPONIBILE", dest:"Vendita", liste:["Vendita"], posizione:"Magazzino Imballaggio", nuovo:true, gallery:2,
    prezzoConsigliato:9800, prezzoMinimo:8400, prezzoGiorno:null, prezzoMese:null,
    simBatteria:null,
    attr:{ "Tipologia":"Tavola rotante","Dimensioni pallet":"800×1200 mm","Alt. avvolgimento":"2.400 mm","Alimentazione":"Elettrica 230V" } },

  { id:"W009", cat:"avvolgitrici", sub:"", marca:"Atlanta", modello:"Robot S6",
    stato:"NON_VISIBILE", dest:"Vendita", liste:["Vendita"], posizione:"Magazzino Imballaggio", nuovo:false, gallery:1,
    prezzoConsigliato:13200, prezzoMinimo:11500, prezzoGiorno:null, prezzoMese:null,
    simBatteria:null,
    attr:{ "Tipologia":"Robot semovente","Dimensioni pallet":"Variabile","Alt. avvolgimento":"2.200 mm","Alimentazione":"Batteria" } },
];

// ---- Bookings ----------------------------------------------
function daysFromNow(d){ const x=new Date(); x.setDate(x.getDate()+d); return x; }
const PRENOTAZIONI = [
  { id:"PR-1042", prodId:"U312", prodLabel:"Linde E25", cliente:"Rossi Srl", commerciale:"Marco Bianchi",
    tipo:"Vendita", inizio:daysFromNow(-9), fine:daysFromNow(5), note:"Cliente interessato, in attesa permuta usato.", prob:70, stato:"attiva", zonaId:"z20", batteria:false, catClienteId:"cc1" },
  { id:"PR-1048", prodId:"P244", prodLabel:"RCM Macro", cliente:"Pulizie Industriali SPA", commerciale:"Marco Bianchi",
    tipo:"Vendita", inizio:daysFromNow(-12), fine:daysFromNow(1), note:"Demo effettuata, decisione entro settimana.", prob:55, stato:"in_scadenza", zonaId:"", batteria:false, catClienteId:"cc2" },
  { id:"PR-1051", prodId:"S077", prodLabel:"Jungheinrich EFG 218", cliente:"Logistica Rossi", commerciale:"Giulia Conti",
    tipo:"STR", inizio:daysFromNow(-3), fine:daysFromNow(11), note:"Noleggio breve termine, 2 settimane.", prob:90, stato:"attiva", zonaId:"z3", batteria:false, catClienteId:"cc2" },
  { id:"PR-1039", prodId:"U401", prodLabel:"Yale GDP25", cliente:"Edil Marconi", commerciale:"Davide Greco",
    tipo:"LTR", inizio:daysFromNow(-15), fine:daysFromNow(-1), note:"Scaduta — serve azione.", prob:40, stato:"scaduta", zonaId:"", batteria:false, catClienteId:"cc5" },
];

// ---- Archivio prenotazioni (storico chiuso) ----------------
const ARCHIVIO_INIT = [
  { id:"PR-0981", prodId:"U245", prodLabel:"Toyota 8FBM20T", cliente:"Farmacia Centrale", commerciale:"Giulia Conti",
    tipo:"STR", inizio:daysFromNow(-120), fine:daysFromNow(-92), note:"Noleggio 4 settimane, rientrato regolarmente.", esito:"liberata", catClienteId:"cc1", zonaId:"z20", chiusoIl:daysFromNow(-92) },
  { id:"PR-0997", prodId:"U245", prodLabel:"Toyota 8FBM20T", cliente:"Logistica Rossi", commerciale:"Marco Bianchi",
    tipo:"LTR", inizio:daysFromNow(-300), fine:daysFromNow(-110), note:"Noleggio lungo 6 mesi.", esito:"liberata", catClienteId:"cc2", zonaId:"z3", chiusoIl:daysFromNow(-110) },
  { id:"PR-1003", prodId:"S077", prodLabel:"Jungheinrich EFG 218", cliente:"Pulizie Industriali SPA", commerciale:"Marco Bianchi",
    tipo:"Vendita", inizio:daysFromNow(-65), fine:daysFromNow(-60), note:"Vendita conclusa.", esito:"confermata", catClienteId:"cc2", zonaId:"", chiusoIl:daysFromNow(-60) },
  { id:"PR-1011", prodId:"U312", prodLabel:"Linde E25", cliente:"Carni Padane SpA", commerciale:"Davide Greco",
    tipo:"STR", inizio:daysFromNow(-50), fine:daysFromNow(-36), note:"Settore alimentare, celle frigo.", esito:"liberata", catClienteId:"cc4", zonaId:"z48", chiusoIl:daysFromNow(-36) },
  { id:"PR-1020", prodId:"P244", prodLabel:"RCM Macro", cliente:"Edil Marconi", commerciale:"Giulia Conti",
    tipo:"Prova", inizio:daysFromNow(-28), fine:daysFromNow(-25), note:"Prova demo 3 giorni.", esito:"liberata", catClienteId:"cc5", zonaId:"", chiusoIl:daysFromNow(-25) },
];

// ---- Notifications -----------------------------------------
const NOTIFICHE = [
  { id:1, type:"prenotazione", read:false, when:"12 min fa", title:"Nuova prenotazione", body:"Linde E25 prenotato per Rossi Srl", icon:"calendar" },
  { id:2, type:"scadenza", read:false, when:"1 h fa", title:"Prenotazione in scadenza", body:"RCM Macro — scade domani", icon:"clock" },
  { id:3, type:"nuovo", read:false, when:"3 h fa", title:"Nuovo prodotto disponibile", body:"Still RX20-16 aggiunto a Pronta Consegna", icon:"sparkle" },
  { id:4, type:"stato", read:true, when:"Ieri", title:"Cambio stato", body:"Toyota Traigo 80 ora In arrivo", icon:"refresh" },
  { id:5, type:"liberato", read:true, when:"Ieri", title:"Mezzo liberato", body:"OM XE25 di nuovo disponibile", icon:"unlock" },
];

// ---- Users (admin) -----------------------------------------
const UTENTI = [
  { id:"u1", nome:"Marco Bianchi",  email:"m.bianchi@menabue.it",  ruolo:"commerciale", attivo:true,  password:"menabue2025" },
  { id:"u2", nome:"Giulia Conti",   email:"g.conti@menabue.it",    ruolo:"commerciale", attivo:true,  password:"menabue2025" },
  { id:"u3", nome:"Davide Greco",   email:"d.greco@menabue.it",    ruolo:"commerciale", attivo:false, password:"menabue2025" },
  { id:"u4", nome:"Sara Ferrari",   email:"s.ferrari@menabue.it",  ruolo:"backoffice",  attivo:true,  password:"menabue2025" },
  { id:"u5", nome:"Omar Menabue",   email:"l.menabue@menabue.it",  ruolo:"admin",       attivo:true,  password:"admin2025" },
];
// Logged-in user per role (demo accounts)
const SELF_BY_ROLE = { admin:"u5", backoffice:"u4", commerciale:"u1" };

// ---- Activity log ------------------------------------------
const ACTIVITY = [
  { when:"Oggi 14:32", user:"Marco Bianchi", azione:"Ha prenotato", target:"Linde E25 → Rossi Srl", tag:"prenotazione" },
  { when:"Oggi 11:08", user:"Sara Ferrari",  azione:"Ha cambiato stato", target:"Toyota Traigo 80 → In arrivo", tag:"stato" },
  { when:"Oggi 09:51", user:"Omar Menabue",  azione:"Ha modificato prezzo", target:"Still RX20-16 — min € 22.500", tag:"prezzo" },
  { when:"Ieri 17:20", user:"Giulia Conti",  azione:"Ha prorogato", target:"Jungheinrich EFG 218 +7 gg", tag:"prenotazione" },
  { when:"Ieri 16:02", user:"Omar Menabue",  azione:"Ha aggiunto prodotto", target:"Robopac Rotoplat 508", tag:"prodotto" },
  { when:"Ieri 10:14", user:"Davide Greco",  azione:"Ha liberato", target:"OM XE25", tag:"prenotazione" },
];

function fmtEur(n){ if(n==null) return "—"; return "€ " + n.toLocaleString("it-IT"); }
function fmtDate(d){ return d.toLocaleDateString("it-IT", { day:"2-digit", month:"short", year:"numeric" }); }

Object.assign(window, {
  STATI, DESTINAZIONI, RUOLI, CATEGORIE, PRODOTTI, PRENOTAZIONI, ARCHIVIO_INIT, NOTIFICHE, UTENTI, SELF_BY_ROLE, ACTIVITY,
  fmtEur, fmtDate, daysFromNow,
});
