Specifiche tecniche/ Gestionale CRM/ v2.0 — settembre 2026/ sostituisce v1.0 ago 2026

Gentiluomo Estetica
Gestionale CRM

Consolidamento della v1.0 con le 51 risposte del cliente. Le contraddizioni sono risolte con una decisione presa e motivata, non rimandate: quanto segue è direttamente implementabile. Restano aperti solo i dati che nessuno se non il cliente può fornire.

26contraddizioni risolte
30decisioni prese
19entità nuove
9dati ancora mancanti
01

Architettura

D-01

Cloud unico, offline degradato. Nessun nodo locale in fase 1.

v1.0 §6Gestionale pieno accessibile solo dal computer centrale del centro; backup in doppia copia, una locale e una cloud.
v2.0Applicazione cloud multi-tenant, istanza unica, database gestito, row-level security su id_centro. Tre client sullo stesso backend: gestionale, app operatrici, app cliente.

Il cloud è master unico dell'agenda. Ogni prenotazione, che nasca in centro o dall'app cliente, si scrive lì. È l'unico modo per non produrre doppie prenotazioni sulle risorse singole — un macchinario laser, una fresa, due operatrici per centro.

Tutto ciò che nasce in centro è invece append-only e non collide mai: incassi, sedute consumate, scalo Gentil Card, timbrature, note cliente, movimenti di prima nota, scarichi di magazzino.

Senza rete il centro lavora in modalità degradata, non bloccata: legge l'agenda dalla cache locale del client, registra normalmente tutte le scritture append-only in una coda che si replica alla riconnessione, e può prendere nuovi appuntamenti che nascono in stato Provvisorio. Alla riconnessione o si confermano, o — se nel frattempo lo slot è stato preso dall'app cliente — il sistema apre un conflitto per la Store Manager invece di creare il doppione.

La sincronizzazione è continua quando c'è rete, non periodica: ogni minuto di ritardo allarga la finestra di conflitto senza portare alcun vantaggio.

Perché non il nodo locale in centro Un mini-PC o SBC per centro era sul tavolo. Non risolve il problema vero, che non è dove gira il software ma chi decide la prenotazione: l'app cliente prenota comunque dal cloud, quindi il conflitto resta. Una volta stabilito che l'agenda ha un master unico, il box aggiunge solo cache di LAN e backup locale, al prezzo di 5–9 macchine Linux in altrettanti negozi senza nessuno in loco che sappia riavviarle. Si valuta in fase 3 se la connettività di un centro si rivela davvero pessima; in quel caso SSD e non microSD, più un piccolo UPS, e ruolo limitato a replica in lettura.

La «copia locale» del backup richiesta dalla v1.0 §6 resta assolta da un dump cifrato notturno sul computer del centro, oltre ai backup gestiti lato cloud. Retention 30 giorni, RPO 24 ore per la copia locale e 5 minuti per quella cloud.

D-02

Isolamento per centro con id_centro su ogni entità

Nella v1.0 id_centro compariva solo su Personale, Risorsa fisica e Memo. Va aggiunto su Cliente, Appuntamento, Gentil Card, Pacchetto, Pagamento, Prodotto, Preventivo, Lista d'attesa — senza chiave di tenant su ogni riga non si può né isolare né aggregare.

Un cliente che frequenta due centri ha due anagrafiche distinte, coerentemente con l'isolamento del §1.1 e con la scelta del cliente di far attivare una seconda Gentil Card. I centri in franchising sono titolari autonomi: unificare l'anagrafica creerebbe una contitolarità che nessuno ha chiesto.

D-03

Provisioning nuovo centro: si clona anche l'inventario risorse

La v1.0 clonava listino, fasce Gentil Card e regole di sconto. Si aggiunge il tipario delle risorse fisiche (cabine, cabine con doccia, scaldacera, fresa, macchinario laser, elettrostimolatore, cabina Body Strategy): il nuovo centro ne dichiara solo le quantità. Senza questo passaggio il motore agenda di un centro appena aperto non ha vincoli su cui ragionare.

02

Ruoli e permessi

D-04

La trasparenza resta totale sui dati; la restrizione riguarda solo le azioni

v1.0 §1.2«Trasparenza totale, nessuna restrizione di ruolo.»
v2.0Visibilità invariata: tutto il personale vede agenda, clienti e incassi. Sette operazioni diventano però riservate alla Store Manager.

Le risposte hanno assegnato esplicitamente alla Store Manager: inserimento turni, registrazione di ferie, malattie e permessi, chiusura della prima nota, marcatura del no-show e incasso della penale, sblocco del cliente sanzionato, correzione delle timbrature, riassociazione dei dispositivi. Sono azioni, non viste: il principio della v1.0 sopravvive intatto.

RuoloVedePuò fare in più
OperatriceTutto il proprio centroAgenda, clienti, incassi, preventivi, timbratura
Direttrice tecnicaTutto il proprio centroCome operatrice, più anamnesi e protocolli
Store ManagerTutto il proprio centroLe sette operazioni riservate, memo giornaliero, magazzino
Casa madreAggregati di tutti i centriNulla: sola lettura
D-05

Casa madre: aggregati per default, nominativi solo su attivazione tracciata

v1.0 §1.1«Non è richiesta una dashboard centralizzata in tempo reale»; la casa madre riceve report esportati da ciascun centro.
v2.0Login cross-centro in sola lettura, permanente.

Alla richiesta «tutto, possiamo accedere a ogni dato» rispondo con un default più stretto di quanto chiesto: la casa madre vede tutti gli indicatori aggregati per centro — fatturato, trattamenti venduti, upsell, nuovi clienti, scontrino medio, percorsi e card attive, flussi tra macrocategorie — e gli elenchi in forma non nominativa.

L'accesso ai dati nominativi dei clienti e alle timbrature nominali del personale è disattivo di default, attivabile per singolo centro e sempre registrato in AuditLog.

Perché I franchisee sono titolari del trattamento autonomi. Un accesso indiscriminato del franchisor ai nominativi dei clienti e alle presenze dei dipendenti altrui richiede un contratto di responsabile ex art. 28 GDPR, la dichiarazione nell'informativa ai clienti e in quella ai dipendenti. Il default stretto rende il sistema utilizzabile da subito; l'apertura è un interruttore, non una riscrittura.
03

Motore agenda e vincoli di risorsa

È la parte più cambiata. Le risposte hanno riscritto i vincoli del §3.2 e introdotto un caso — lo Skingent che libera il laser a metà seduta — che il modello della v1.0 non può rappresentare.

D-06

Occupazione delle risorse a segmenti, non monolitica

v1.0 §2.6Un id_risorsa_fisica sull'appuntamento più un booleano eseguibile_in_parallelo: la risorsa è occupata per tutta la durata del trattamento.
v2.0Il catalogo dichiara quali risorse servono e per quale intervallo; l'appuntamento genera segmenti di occupazione verificati singolarmente.

Due entità sostituiscono il modello vecchio:

  • RequisitoRisorsaTrattamento — per ogni trattamento: tipo di risorsa, offset_inizio, durata_occupazione, esclusiva sì/no.
  • OccupazioneRisorsa — generata sulla riga di appuntamento: risorsa, minuto di inizio, minuto di fine.

Uno slot è ammissibile quando, per ogni segmento, le unità impegnate restano sotto la quantità disponibile. Il modello copre in un colpo solo tutti i casi che il cliente ha descritto:

TrattamentoRisorsaSegmentoEffetto
SkingentMacchinario laser0 → 30 minDopo il minuto 30 un laser può partire
Laser (tutte le zone)Macchinario laserintera durataUn solo laser alla volta in centro
Laser Total BodyMacchinario laser0 → 150 minBlocco unico indivisibile, un solo giorno
Total Detox e scrubCabina docciasolo fase scrubDue Total Detox si sovrappongono se le docce non collidono
Epilazione a ceraScaldacera ×2intera durataMassimo 2 cere in parallelo
Manicure e PedicureFresa ×1intera durataMai due in contemporanea
Body StrategyElettrostim. + cabina BSintera durataSedute consecutive, mai sovrapposte
Buffer di riassettoCabina + operatrice10 min in codaIl macchinario è già libero
D-07

La risorsa laser vincolante è il macchinario, non la cabina

Separo Macchinario laser e Cabina in due risorse distinte. Se la cabina restasse occupata per tutta la seduta di Skingent, liberare il macchinario al minuto 30 non servirebbe a nulla: nessun altro laser potrebbe comunque partire, e l'intenzione espressa dal cliente sarebbe vanificata.

Modello: lo Skingent impegna il macchinario nei primi 30 minuti e una cabina generica per l'intera durata. Il numero di cabine per centro è quindi un parametro che governa anche quanti massaggi e trattamenti viso stanno in parallelo — oggi limitati solo dalle operatrici. È il dato mancante DM-3.

D-08

Epilazione a cera: resta il vincolo fisico dei due scaldacera

v1.0 §5.3Tutte e 14 le voci a cera riportano «max 2 in parallelo».
risposta clienteL'elenco dei parallelizzabili nomina solo «cera brasiliana (2 scaldacera)».

Adotto il vincolo fisico: gli scaldacera sono due, quindi due cere qualsiasi possono convivere. La contraddizione è meno grave di quanto sembri — con due operatrici per centro il limite operativo è comunque due, e l'inguine integrale, che ne richiede due da solo, si esclude da sé senza bisogno di una regola dedicata. Le due letture producono lo stesso calendario in quasi ogni caso reale.

Resta da sapere a quale voce di listino corrisponda la «cera brasiliana», che non compare nel §5.3 — dato mancante DM-2.

D-09

Assegnazione del personale a intervalli

Il campo id_staff (uno o due) della v1.0 non può esprimere il rilascio anticipato della seconda operatrice. Si introduce AssegnazioneStaff(id_riga, id_staff, da, a, ruolo).

  • Combo Full Body — default: entrambe le operatrici bloccate per l'intera durata di 120 minuti, con rilascio manuale della seconda a partire dal minuto 60, che la rende riassegnabile.
  • Inguine integrale — default due operatrici, override manuale a una, come già previsto dalla v1.0.
Conseguenza sulla capacità

Con due operatrici di media per centro, un Combo Full Body satura l'intero centro per due ore. Va escluso dall'autoprenotazione ed è ragionevole confinarlo, insieme all'inguine integrale, in fasce orarie dedicate configurabili per centro.

D-10

Griglia a 5 minuti, testata e righe, buffer in coda al blocco

Le durate vanno da 10 minuti (sopracciglia) a 150 (Laser Total Body): la griglia è a 5 minuti, non a slot fissi.

L'appuntamento diventa testata più righe: le righe sono trattamenti distinti, specificati, consecutivi e senza buffer tra loro. I 10 minuti di riassetto si applicano una volta sola, in coda all'intero blocco del cliente, e impegnano cabina e operatrice ma non il macchinario, che si libera subito per lo slot successivo.

D-11

Prenotazione da app: whitelist auto-confermata, il resto su richiesta

v1.0 §1.2App cliente in sola consultazione.
v2.0App cliente transazionale: prenota in autonomia e vede l'intera storicità.

Auto-confermati: tutti i massaggi, Viso Express e Gentiluomo su Misura, manicure e pedicure, cere a una operatrice fino a 35 minuti.

In stato Da confermare: laser, Skingent, Body Strategy, Combo Full Body, inguine integrale e qualunque seduta di percorso. Nascono da consulenza o da un preventivo, e impegnano risorse che non si possono lasciare prendere alla cieca.

Il motore espone al cliente solo slot già validati contro turni, assenze, buffer, risorse a segmenti, doppia operatrice e blocco indivisibile del Laser Total Body. Anticipo minimo di prenotazione: 2 ore. Nessuna scelta dell'operatrice, come prescritto dal §3.2. Un cliente con no-show non regolarizzato vede un messaggio esplicito di blocco, non un calendario misteriosamente vuoto.

D-12

Slot liberato: la lista d'attesa ha la precedenza per 4 ore

La v1.0 prevedeva che l'operatrice consultasse manualmente la lista d'attesa dopo una cancellazione. Ora il cliente può riprendersi lo slot da solo prima che qualcuno chiami. Alla cancellazione lo slot resta quindi riservato alla lista d'attesa per 4 ore (configurabile per centro) e non compare tra quelli pubblici; scaduto il termine torna prenotabile. La lista resta invisibile ai clienti, come da §2.13.

04

Gentil Card, percorsi e statistiche

D-13

Gentil Card: saldo unico, digitale, per centro

v1.0 §2.4Numero associato fisicamente alla Gentil Card cartacea, una card per cliente.
v2.0Tessera digitale, numerazione che riparte da 1 in ogni centro: unicità sulla coppia (id_centro, numero_tessera). Più card attive per cliente, una per ogni centro frequentato.

Importo pagato e bonus si sommano in un saldo unico e si scalano dal totale. La quota di bonus consumata resta comunque tracciata in quota_bonus_consumata, perché serve alle statistiche e alla separazione fiscale, ma non è un borsellino a sé.

Sotto i 500 € la card non si attiva: il trattamento si paga singolarmente, senza sconti né bonus. Se il residuo non copre il trattamento, il cliente paga la differenza nello stesso movimento oppure attiva una nuova card da cui si scala la differenza. Il residuo copre solo servizi: i prodotti da rivendita si pagano a parte.

Fascia di ricaricaBonusTotale spendibile
500 – 750 €120 €620 – 870 €
800 – 1.400 €200 €1.000 – 1.600 €
1.500 – 2.350 €350 €1.850 – 2.700 €
2.500 € e oltre500 €3.000 € e oltre

Le fasce restano discontinue per scelta: 760 € ricade nella fascia inferiore. È una leva di upsell, non un errore da correggere in fase di implementazione.

D-14

Il bonus dei percorsi resta un borsellino separato

La risposta sul saldo unico riguarda la Gentil Card. Per i percorsi il §3.1 impone due vincoli che un saldo unico non può esprimere: il bonus non è spendibile sul trattamento appena acquistato, e il bonus VIP da 1.000 € del Percorso Laser Total Body è spendibile su tutto tranne il laser.

Quindi BonusPercorso è un'entità distinta con regole di eleggibilità per categoria di trattamento. Card e bonus percorso convivono sulla stessa scheda cliente e si scalano secondo l'eleggibilità, non secondo un ordine fisso.

D-15

I percorsi non scadono: lo stato «In scadenza» diventa «Da sollecitare»

v1.0 §2.9stato ∈ { In corso, In scadenza, Concluso } — senza regola di calcolo per «In scadenza».
v2.0stato ∈ { Nuovo, In corso, Da sollecitare, Concluso }.

Il cliente ha chiarito che i percorsi non hanno scadenza: hanno una frequenza concordata e una durata stimata definite in consulenza. Da sollecitare scatta quando i giorni dall'ultima seduta superano la frequenza concordata più 15 giorni di tolleranza. Il §4.1 chiedeva di ordinare i percorsi per stato: l'ordinamento resta, cambia il significato del terzo valore.

Un percorso si apre solo su Epilgent, Body Strategy o Skingent, su zone specifiche definite a preventivo. Ampliare un percorso avviato crea un percorso nuovo collegato all'originale da id_percorso_origine: la statistica «ampliamento percorsi» del §4.2 diventa una correlazione tra percorsi collegati dello stesso cliente.

D-16

Consulenza: nuova entità, con sconto a termine e alert a 24 ore

Lo sconto del 20 % entro una settimana dalla consulenza e del 10 % oltre — che la v1.0 citava solo per Body Strategy e che ora vale anche per Epilgent e Skingent — richiede che la consulenza esista come oggetto datato.

Consulenza registra cliente, operatrice, data, tipo di percorso, sconto proposto, data di scadenza dello sconto, preventivo collegato ed esito. Il sistema genera un alert 24 ore prima della scadenza per ricontattare il cliente. Alla scadenza lo sconto proposto scende automaticamente al 10 %, e resta modificabile a mano dalla Store Manager.

D-17

Fatturato: due metriche distinte, perché una sola non regge

Le risposte danno tre indicazioni che sembrano in conflitto: il fatturato si conta il giorno dell'incasso; una seduta scalata vale zero; su due operatrici si ripartisce in proporzione al tempo. Sono compatibili solo separando due grandezze:

MetricaQuando si registraA chi si attribuisceServe per
VendutoGiorno dell'incassoid_staff_venditoreFatturato, scontrino medio, upsell
ErogatoGiorno della sedutaRipartito sul tempo assegnatoProduttività per operatrice, saturazione

Il «fatturato per operatrice» del §4.1 mostra entrambe le colonne. L'erogato si valorizza a listino anche a scontrino zero: è l'unico modo per vedere quanto lavora davvero chi eroga sedute già pagate. Lo scontrino medio si calcola sul venduto diviso le transazioni con importo maggiore di zero — le visite a scontrino zero non entrano nel denominatore.

Gli omaggi non entrano in nessuna delle due: hanno una categoria statistica propria con il valore erogato separato dall'incassato.

05

Cassa, prima nota e fiscalità

D-18

Registrazione manuale come baseline; integrazione cassa in fase 3

SumUp espone API di checkout, ma non esiste un'integrazione documentata verso il modulo fiscale RT italiano, che si pilota in locale con i protocolli del produttore. In architettura cloud servirebbe un agente locale per centro, cioè da cinque a nove installazioni da mantenere.

La baseline contrattuale è quindi quella che il cliente stesso ha indicato come fallback: la Store Manager registra il metodo di pagamento sul gestionale, e il sistema produce un report di riconciliazione giornaliero tra incassi registrati e totali SumUp per intercettare le discrepanze. Scontrino fiscale e scontrino a zero restano emessi dal sistema cassa SumUp.

L'integrazione automatica si valuta in fase 3 con uno spike a esito incerto, e non va promessa come requisito finché non si conoscono marca e modello del registratore telematico — dato mancante DM-4.

D-19

Prima nota: entità propria, sei metodi di pagamento distinti, chiusura mensile

La prima nota era citata tre volte nella v1.0 senza alcuna entità nello schema. Ora esiste:

  • MovimentoPrimaNota — incassi per metodo, uscite in contanti, versamenti in contanti, con causale e riferimento al pagamento o alla vendita.
  • ChiusuraPrimaNota — mensile, a cura della Store Manager, con saldo cassa iniziale e finale.

L'enum dei metodi si separa in sei valori: Contanti, POS, Bonifico, Satispay, Scalapay, Klarna. La v1.0 accorpava Scalapay e Klarna sotto «Small Pay», ma la prima nota li vuole distinti. Le vendite di prodotti confluiscono in prima nota come fatturato, insieme ai servizi.

D-20

Gentil Card come buono monouso, con la portabilità bloccata a sistema

Il credito è spendibile in un solo centro, su servizi estetici a un'unica aliquota: territorialità e imposta sono note già all'emissione, quindi la card è un buono monouso, con IVA esigibile alla ricarica. È coerente con la scelta di contare il fatturato al giorno dell'incasso e con lo scontrino a zero sulle sedute successive.

Vincolo tecnico da non aggirare

La non trasferibilità tra centri va bloccata a livello di sistema e marcata come modifica che richiede revisione fiscale. Renderla portabile trasformerebbe la card in buono multiuso, con imposizione sulla singola prestazione: salterebbero gli scontrini a zero, la prima nota e il modello statistico. Da confermare per iscritto dal commercialista.

Si aggiunge il blocco dei pagamenti in contanti dai 5.000 €, rilevante sul Percorso Laser Total Body da 9.900 € pagabile in unica soluzione.

06

CRM, omaggi e notifiche

D-21

No-show: 48 ore di preavviso, penale sempre confermata a mano

Disdetta libera fino a 48 ore prima. Entro le 48 ore il sistema genera una penale pari al 50 % del trattamento in stato Da riscuotere; è la Store Manager a confermarla, incassarla o annullarla, e a sbloccare il cliente. Fino alla regolarizzazione il cliente non può prendere nuovi appuntamenti, né in centro né da app. La penale non si applica a chi ha Gentil Card o percorso attivo.

D-22

Omaggi: entità propria, 20 minuti, 30 giorni dallo sblocco

v1.0 §3.5Massaggio omaggio di 25 minuti, senza scadenza.
v2.020 minuti, da utilizzare entro 30 giorni, occupa slot e operatrice.

I 30 giorni decorrono dallo sblocco da parte del centro, non dalla data della recensione: è il momento da cui l'omaggio è effettivamente utilizzabile, e la verifica è manuale. Resta valido una sola volta per cliente. L'entità Omaggio copre anche gli omaggi di compleanno, con stato Disponibile / Usato / Scaduto e valore erogato tracciato nella categoria statistica dedicata.

Per il compleanno, l'appuntamento porta un flag automatico se cade entro 7 giorni dalla data di nascita, così le operatrici possono fare gli auguri di persona o proporre l'omaggio.

D-23

Alert inattività: soglia unica a 45 giorni

v1.0 §3.630 o 60 giorni dopo la fine di un pacchetto o l'esaurimento della card; nessuna soglia per i clienti a sedute singole.
v2.045 giorni, soglia unica per entrambi i casi. Cliente abituale = dalla terza visita.

L'alert scatta sui clienti abituali senza percorso attivo e su quelli con card esaurita o percorso concluso. Un percorso in corso non genera alert di inattività: per quello esiste lo stato Da sollecitare.

D-24

WhatsApp solo per i messaggi di servizio; promozioni su app ed email

Automatizzare WhatsApp significa WhatsApp Business API tramite provider, numero aziendale intestato al centro, template preapprovati da Meta e costo per conversazione moltiplicato per cinque-nove centri. Gli SMS hanno un costo per invio. I messaggi dai telefoni personali delle operatrici non sono compatibili con tracciabilità e titolarità del trattamento.

ComunicazioneCanaleConsenso
Conferma, promemoria, disdettaWhatsApp (template utility) + emailContrattuale
Richiesta recensione GoogleWhatsApp + pushContrattuale
PromozioniPush in app + emailOpt-in marketing
CompleannoPush in app + emailOpt-in marketing
Mancata consegnaSMS di fallbackCome l'originale

Il booleano unico consenso_marketing è sostituito da ConsensoCanale, una riga per ogni combinazione canale × finalità: l'opt-out distinto richiesto dal cliente funziona così sia per canale sia per tipo di messaggio. Ogni invio è registrato in LogInvio con esito e costo.

Il promemoria telefonico quotidiano della Store Manager resta manuale, come voluto dalla v1.0 §3.7: serve a mantenere la pianificazione strategica della giornata, e non va automatizzato.

07

Personale e timbrature

D-25

Turni e assenze: il pezzo che mancava del tutto

La v1.0 non aveva né orari di apertura né turni: le timbrature sono un consuntivo, non una pianificazione, e senza pianificazione il motore agenda non sa quali slot proporre. Due entità nuove, entrambe gestite dalla Store Manager:

  • Turno — per operatrice, inserito mensilmente, modificabile, con storico delle modifiche.
  • Assenza — ferie, malattia o permesso, con causale; blocca automaticamente gli slot in agenda.

Gli orari di apertura sono per centro e per giorno della settimana, con calendario delle chiusure. Base di partenza: Aosta, dal martedì al sabato, 10–19 continuato.

D-26

Raggio GPS a 100 metri, con il WiFi del centro come vero secondo fattore

richiestaRaggio di tolleranza 10 metri.
v2.0Raggio 100 m, soglia di accuratezza dichiarata dal dispositivo, secondo fattore sul BSSID della rete WiFi del centro.

Dieci metri non è realizzabile. In interni lo smartphone si localizza tramite WiFi e celle, con errore tipico da 20 a oltre 100 metri: la soglia rifiuterebbe sistematicamente timbrature legittime. E non aggiunge sicurezza, perché la posizione è falsificabile via mock location.

Il controllo che funziona davvero è quello già previsto dalla v1.0: il vincolo sul dispositivo registrato. Vi si aggiunge il riconoscimento della rete WiFi del centro, che è locale per costruzione e non falsificabile da remoto.

Si registra solo l'esito booleano dentro o fuori raggio, con l'accuratezza dichiarata. Le coordinate non vengono salvate: non servono a nulla dopo la verifica e sono il dato più sensibile dell'intero sistema.

D-27

Dispositivi, correzioni e straordinari

DispositivoStaff ammette un solo dispositivo attivo per operatrice: associarne uno nuovo dissocia automaticamente il precedente. La riassociazione è riservata alla Store Manager — la risposta non lo specificava, ed è coerente con il fatto che sia lei a correggere le timbrature — e finisce in AuditLog con autore, data, dispositivo vecchio e nuovo.

Le correzioni di timbratura restano tracciate con valore precedente, autore, data e motivo. Gli straordinari si calcolano sul monte ore mensile, non settimanale; la pausa si scala dalle ore lavorate solo se effettivamente timbrata.

08

Privacy e sicurezza

La v1.0 non aveva un capitolo privacy. Con il passaggio al cloud, l'app cliente e la geolocalizzazione del personale, serve — ed è un deliverable, non una coda.

D-28

Art. 4 Statuto dei Lavoratori: iter da avviare prima del go-live

La geolocalizzazione dei dipendenti eccede la mera registrazione delle presenze e ricade nel primo comma dell'art. 4: richiede accordo sindacale o autorizzazione dell'Ispettorato del lavoro, più l'informativa specifica del terzo comma. Senza, i dati raccolti sono inutilizzabili a ogni fine, comprese le contestazioni disciplinari.

In più, sul telefono personale della dipendente il consenso del lavoratore non è una base giuridica valida, per lo squilibrio di potere nel rapporto: va offerto un dispositivo del centro come alternativa a chi non vuole usare il proprio. L'iter è a carico del cliente e va avviato subito, perché ha tempi che non dipendono dallo sviluppo.

D-29

Anamnesi separata dalle note libere

Le note libere del §2.4 sono una finestra condivisa tra operatrici, e ora vivono in cloud con accesso multi-dispositivo. Se vi finiscono allergie, patologie o condizioni della pelle, sono dati sanitari ex art. 9 in un campo di testo libero senza controlli.

Si crea un campo anamnesi strutturato e separato, con consenso specifico, visibilità limitata ai ruoli che erogano il trattamento ed esclusione dagli accessi della casa madre. Le note libere restano per le annotazioni non sanitarie, con un avviso esplicito in interfaccia.

D-30

Conservazione, consensi e tracciamento

DatoConservazionePoi
Documenti contabili, prima nota, pagamenti10 anniArchiviazione
Anagrafica, note, storico trattamenti5 anni dall'ultimo appuntamentoAnonimizzazione
Consensi e informative accettatedurata + 5 anniCancellazione
Timbrature ed esiti di prossimità5 anniCancellazione
Audit log2 anniCancellazione

Il consenso privacy resta su modulo cartaceo per chi firma in centro, come da §2.15. Chi si registra dall'app accetta invece un'informativa digitale versionata, con data e versione tracciate: nessuna operatrice è presente alla firma, quindi il flag manuale non è applicabile.

Serve una DPIA prima del go-live — geolocalizzazione dei dipendenti, possibili dati sanitari, accentramento cloud di cinque-nove centri — oltre al registro dei trattamenti, alle nomine a responsabile per hosting, provider di messaggistica e SumUp, e all'hosting in UE. Cifratura a riposo su anamnesi e note libere.

09

Schema dati

Entità nuove rispetto alla v1.0, e modifiche a quelle esistenti. Le quindici entità originali restano tutte, salvo dove indicato.

Entità nuove

Turno
id_staff, id_centro, data, ora_inizio, ora_fine, pausa_prevista, inserito_da, storico_modifiche
Assenza
id_staff, tipo (Ferie/Malattia/Permesso), da, a, causale, registrata_da, blocca_agenda
RigaAppuntamento
id_appuntamento, id_trattamento, ordine, inizio, durata, buffer_minuti, sconto_upsell, id_omaggio
AssegnazioneStaff
id_riga, id_staff, da, a, ruolo_nella_seduta, rilasciata_da, motivo_rilascio
OccupazioneRisorsa
id_riga, id_risorsa, offset_inizio_min, offset_fine_min — sostituisce id_risorsa_fisica monolitico
RequisitoRisorsaTrattamento
id_trattamento, id_tipo_risorsa, offset_inizio, durata_occupazione, esclusiva — sostituisce eseguibile_in_parallelo
Consulenza
id_cliente, id_centro, id_staff, data, tipo_percorso, sconto_proposto, scadenza_sconto, id_preventivo, esito, alert_24h_inviato
BonusPercorso
id_pacchetto, importo, residuo, categorie_escluse — regole di eleggibilità del §3.1
Omaggio
id_cliente, tipo (Recensione/Compleanno), durata_minuti, data_sblocco, data_scadenza, stato, id_riga_consumo, valore_erogato
MovimentoPrimaNota
id_centro, data, tipo (Uscita/Versamento/Incasso), metodo, importo, causale, rif_pagamento, rif_vendita, id_staff
ChiusuraPrimaNota
id_centro, mese, stato, chiusa_da, data_chiusura, saldo_iniziale, saldo_finale
VenditaProdotto
id_centro, id_cliente, id_prodotto, quantità, prezzo_unitario, id_pagamento, id_appuntamento
AccountCliente
id_cliente, credenziali/OTP, email_verificata, telefono_verificato, stato, versione_TC_accettata, data_accettazione
ConsensoCanale
id_cliente, canale, finalità, valore, data, versione_informativa, sorgente, data_revoca — sostituisce consenso_marketing
LogInvio
id_cliente, canale, finalità, template, timestamp, esito, costo
DispositivoStaff
id_staff, device_id, data_associazione, data_dissociazione, stato, autorizzato_da — un solo Attivo per operatrice
Anamnesi
id_cliente, campi strutturati, consenso_art9, visibilità — separata dalle note libere
AuditLog
id_centro, id_utente, ruolo, azione, entità, id_entità, valore_precedente, valore_nuovo, timestamp, ip
UtenteCasaMadre
nome, scope_centri, sola_lettura, campi_visibili, accesso_nominativi_abilitato

Entità modificate

Clientemod
Aggiungere id_centro, id_account. Rimuovere numero_tessera (passa su Gentil Card) e consenso_marketing (passa su ConsensoCanale).
GentilCardmod
Aggiungere id_centro, numero_tessera (unico su id_centro+numero), stato, quota_bonus_consumata, id_staff_venditore. Più card attive per cliente.
Appuntamentomod
Diventa testata. Aggiungere id_centro, origine (Centro/App/Waitlist), flag_compleanno, data_disdetta, entro_48h, id_penale. Stato ammette Da confermare e Provvisorio.
Trattamentomod
Aggiungere autoprenotabile_da_app, blocco_indivisibile, durata_minima_secondo_operatore. Rimuovere eseguibile_in_parallelo. Categoria ammette Skingent.
Pacchettomod
Aggiungere id_centro, id_consulenza, frequenza_concordata, durata_stimata, id_percorso_origine. Stato: Nuovo / In corso / Da sollecitare / Concluso.
Pagamentomod
Metodo su sei valori distinti. Aggiungere id_centro, tipo (Servizio/Prodotto), id_staff_venditore, id_documento_fiscale.
RisorsaFisicamod
Rinominare Postazione podologica in Fresa. Separare Macchinario laser da Cabina. Aggiungere Cabina Body Strategy e il pool di cabine generiche.
Timbraturamod
Aggiungere accuratezza_gps, esito_in_raggio, bssid_verificato, corretta, valore_precedente, corretta_da, motivo. Rimuovere le coordinate.
Staffmod
Aggiungere monte_ore_mensile, base di calcolo degli straordinari. device_id_registrato passa su DispositivoStaff.
Prodottomod
Aggiungere id_centro e non_scalabile_da_card (sempre vero).
Waitlistmod
Aggiungere id_centro e riservato_fino_a per la precedenza di 4 ore sullo slot liberato.
10

Fasi e consegna

Treatwell si spegne a ottobre 2026, ma le risposte hanno raddoppiato lo scope: cloud, offline, prenotazione online, notifiche automatiche, collegamento cassa, multi-tenancy. Il volume non è il problema — una cinquantina di clienti in CSV — lo è la superficie funzionale.

Ottobre 2026 · MVP

Un centro, solo online

  • Agenda con vincoli di risorsa a segmenti
  • Turni, assenze, orari di apertura
  • Anagrafiche migrate da Treatwell
  • Gentil Card e percorsi
  • Incassi registrati a mano
  • Prima nota e chiusura mensile
  • Timbrature con dispositivo e WiFi
Fase 2

Clienti e continuità

  • App cliente e prenotazione online
  • Modalità offline degradata
  • Notifiche automatiche e consensi per canale
  • Accesso casa madre in sola lettura
  • Consulenze, omaggi, alert
Fase 3

Scala e integrazioni

  • Provisioning nuovi centri
  • Spike integrazione cassa SumUp e RT
  • Statistiche avanzate e flussi tra macrocategorie
  • Nodo locale, solo dove serve davvero

Il go-live di ottobre è vincolato a due cose che non dipendono dallo sviluppo: l'esito dell'iter art. 4 per le timbrature e la consegna dei tracciati Treatwell. Se l'iter non si chiude in tempo, le timbrature partono senza verifica di prossimità, con il solo vincolo sul dispositivo.

11

Dati ancora mancanti

Tutto il resto è deciso. Questi nove punti non sono decisioni da prendere ma fatti che solo il cliente possiede: nessuna scelta di progettazione può sostituirli.

DM-1

Schede complete di Skingent ed Epilgent

Non compaiono da nessuna parte nella v1.0, eppure sono due dei tre percorsi vendibili. Servono: zone trattabili, durata della singola seduta, prezzo pieno, numero di sedute tipico, operatrici richieste, categoria. E una risposta secca: Epilgent coincide con il Percorso Laser Total Body a 10 sedute già a listino a 9.900 €, o è un'offerta distinta?

Blocca · listino, motore agenda, preventivi

DM-2

A quale voce di listino corrisponde la «cera brasiliana»

Nominata come unico trattamento a cera eseguibile in parallelo, ma assente dal §5.3. È l'inguine parziale, l'inguine integrale o una voce nuova?

Blocca · regole di parallelismo

DM-3

Inventario delle risorse, per centro

Quante cabine in totale, quante con doccia, quanti scaldacera, quante frese, quanti lettini. Il numero di massaggi e trattamenti viso in parallelo dipende dalle cabine, non solo dalle operatrici: senza questo numero il motore non ha il vincolo più frequente di tutti.

Blocca · motore agenda, provisioning

DM-4

Marca e modello del registratore telematico

Più la conferma scritta di SumUp sulla possibilità di collegarlo a un gestionale esterno. Senza, l'integrazione cassa resta fuori dal contratto.

Serve per · fase 3

DM-5

Treatwell: lo storico appuntamenti è esportabile?

Serve un file CSV di esempio reale e il tracciato dell'Excel dei pacchetti residui, con le colonne effettive. Se lo storico non è esportabile si parte senza, e per i clienti migrati si perdono storico trattamenti e frequenza di riacquisto.

Blocca · migrazione, go-live ottobre

DM-6

Orari e calendario chiusure di ogni centro

Aosta martedì–sabato 10–19 è confermato. Mancano festività, ferie annuali ed eventuali mezze giornate, e gli orari dei centri di prossima apertura.

Serve per · MVP

DM-7

Testi legali per l'app

Informativa privacy, termini e condizioni con la penale no-show del 50 %, condizioni della Gentil Card (non trasferibile tra centri, bonus non rimborsabile). Chi li redige. Serve inoltre sapere se per i clienti migrati esistono i moduli privacy firmati o vanno raccolti di nuovo in forma digitale.

Blocca · app cliente

DM-8

Conferma del commercialista sulla Gentil Card

Che sia trattata come buono monouso, con IVA esigibile alla ricarica e scontrino a zero sulle sedute successive. Con l'ok a bloccare a sistema i contanti dai 5.000 €.

Blocca · modello fiscale e statistico

DM-9

Chi avvia l'iter art. 4 per le timbrature

Accordo sindacale o istanza all'Ispettorato del lavoro, con informativa ai dipendenti. Ha tempi indipendenti dallo sviluppo e va aperto ora, non a ridosso del go-live. Serve anche sapere se il centro è disposto a fornire un dispositivo aziendale alle operatrici che non vogliono usare il telefono personale.

Blocca · timbrature con prossimità

12

Registro modifiche v1.0 → v2.0

Le ventisei contraddizioni tra il documento di agosto e le risposte di settembre. In ogni caso prevalgono le risposte.

§ v1.0DicevaOra valeDec.
6 · 1.2Solo computer centrale, cloud come backupCloud multi-tenant, tre clientD-01
1.1Nessuna dashboard centralizzataCasa madre in sola lettura, permanenteD-05
1.2App cliente in sola consultazioneApp cliente che prenota e mostra la storicitàD-11
1.2Nessuna restrizione di ruoloSette azioni riservate alla Store ManagerD-04
2.4Tessera cartacea, numero fisicoTessera digitale, unicità per centroD-13
2.8Una card per cliente, senza id_centroPiù card, una per centro frequentatoD-13
2.8 · 3.1Credito e bonus con ordine di scaloSaldo unico sulla card; bonus percorso separatoD-13 · D-14
2.9Stato «In scadenza» senza regola«Da sollecitare» su frequenza concordata + 15 ggD-15
4.2Ampliamento dentro il percorso attivoNuovo percorso collegato all'origineD-15
2.6 · 2.7Risorsa occupata per l'intera durataOccupazione a segmenti con offsetD-06
3.2Laser: una postazione unicaMacchinario e cabina come risorse distinteD-07
3.2 · 5.2Vincolo sulla postazione podologicaVincolo sulla fresa, unicaD-06
3.2 · 5.1Body Strategy: solo elettrostimolatoreCabina e macchinario, sedute consecutiveD-06
3.2 · 5.3Sopracciglia e viso sempre parallelizzabiliWhitelist chiusa; cere legate ai due scaldaceraD-08
5.4Laser Total Body senza durata150 minuti, blocco unico indivisibileD-06
5.3Combo Full Body: due operatrici per metàEntrambe per 2 ore, con rilascio manualeD-09
2.7Più trattamenti su una riga solaTestata più righe, senza buffer tra loroD-10
2.13Waitlist consultata a mano dopo la disdettaPrecedenza automatica di 4 ore sullo slotD-12
3.4Nessuna finestra di disdetta48 ore, penale confermata dalla Store ManagerD-21
3.5Massaggio omaggio 25 min, senza scadenza20 min, 30 giorni dallo sbloccoD-22
3.6Inattività a 30 o 60 giorniSoglia unica a 45 giorni, abituale dalla 3ª visitaD-23
3.7WhatsApp manuale, niente SMSWhatsApp utility automatico, SMS di fallbackD-24
2.4Consenso marketing come booleano unicoConsenso per canale e per finalitàD-24
2.10«Small Pay» accorpa Scalapay e KlarnaSei metodi distinti in prima notaD-19
2.2 · 2.3Straordinari su ore settimanaliMonte ore mensile; pausa solo se timbrataD-27
2.15Consenso solo su modulo cartaceoInformativa digitale versionata per chi arriva da appD-30