✂️ Come funziona

Guida completa a
PrenoTaglio

Sistema di prenotazione per saloni con gestione intelligente degli operatori, varianti servizi, tempo di posa e protezione contro le doppie prenotazioni.

Multi-salone Anti-overbooking Varianti servizi Tempo di posa Competenze operatori Slot dinamici Pausa pranzo Notifiche push

I concetti chiave

Tutto il sistema si basa su questi pilastri. Capirli rende intuitivo ogni comportamento del calendario.

⏱️
durata_slot
La "griglia" del giorno
Ogni quanto tempo compaiono gli slot prenotabili in quel giorno. Con slot da 20 min il calendario mostra 09:00, 09:20, 09:40… Con slot da 30 min mostra 09:00, 09:30, 10:00… È anche il "respiro" naturale tra un appuntamento e l'altro.
Venerdì: slot = 20 min
→ 09:00 / 09:20 / 09:40 / …
Sabato: slot = 30 min
→ 09:00 / 09:30 / 10:00 / …
🔢
n_slot del servizio
Quanto dura il servizio
Quanti slot consecutivi occupa un servizio. La durata reale varia in base al giorno, perché ogni giorno può avere slot di dimensione diversa. Un servizio con n_slot=3 dura 60 min su un giorno da 20 min, ma 90 min su un giorno da 30 min.
Taglio Donna: n_slot = 3
Su giorno da 20 min → 60 min
Su giorno da 30 min → 90 min
👥
n_collaboratori
Quanti clienti in contemporanea
Quante prenotazioni possono sovrapporsi nello stesso momento in quel giorno. È il numero di sedie/postazioni attive. Se è 1, funziona come una fila. Se è 3, tre clienti possono essere serviti allo stesso orario.
Venerdì: n_collaboratori = 3
→ Max 3 clienti allo stesso orario
Sabato: n_collaboratori = 1
→ 1 cliente alla volta
📐
Durata reale
n_slot × durata_slot
La durata effettiva si calcola moltiplicando i due valori. Questo permette di configurare il salone una volta sola e avere comportamenti diversi nei vari giorni senza modificare i servizi.
Combo (n_slot=2):
• Giorno da 20min → 40 min
• Giorno da 30min → 60 min
• Giorno da 60min → 120 min
🎨
Varianti del servizio
Opzioni aggiuntive con supplemento
Un servizio può avere varianti opzionali (es. "con piega", "con colore"). Il prezzo della variante è un supplemento che si aggiunge al prezzo base. La variante può anche aggiungere tempo extra al servizio.
Taglio Donna: €25 (base)
+ variante "Piega": +€15
→ Cliente paga €40 totali
+ variante "Colore": +€30
→ Cliente paga €55 totali
Tempo di posa
Quando il prodotto lavora da solo
Alcuni servizi (tinte, trattamenti, permanenti) hanno una fase in cui il prodotto agisce da solo e l'operatore non deve stare lì. Il sistema sa che l'operatore è libero durante questo periodo e può accettare un altro appuntamento.
Taglio + Colore: 80 min totali
→ 60 min lavoro attivo
→ 20 min posa autonoma
L'operatore è libero dalle 10:00
anche se l'app. finisce alle 10:20
🎓
Competenze operatori
Chi sa fare cosa
Ogni operatore può essere specializzato per certi servizi. Quando il cliente prenota, il sistema assegna automaticamente un operatore qualificato disponibile. Il cliente può anche scegliere un operatore specifico tra quelli abilitati.
Chiara → Taglio Donna, Colorazione
Giuseppe → solo Taglio Uomo

Prenotazione "Taglio Donna"
→ solo Chiara viene proposta ✅
→ Giuseppe non appare ❌
⚖️ Regola di disponibilità dello slot
Prenotazioni sovrapposte < n_collaboratori = ✅ DISPONIBILE
Se il numero di prenotazioni attive che si sovrappongono all'orario richiesto raggiunge n_collaboratori, lo slot è pieno.
Con il tempo di posa, il sistema usa la fine del lavoro attivo (non la fine dell'appuntamento) per capire quando l'operatore è davvero libero.

9 esempi reali

Scenari concreti ordinati per complessità, con visualizzazione temporale e spiegazione chiara del risultato.

1
Scenario base
Sabato con 1 collaboratore — il giorno più stretto
Con una sola postazione, il salone funziona come una fila: un cliente alla volta
📅 Sabato ⏱ slot: 10 min 👥 collaboratori: 1 🕘 09:00 → 18:00
09:0009:10 09:2009:30 09:4010:00
Collaboratore 1
✂️ UOMO
❌ DONNA (richiesta)
Non disponibile alle 09:00 (postazione occupata)
✅ DONNA (09:10)
✂️ DONNA (6 slot = 60 min)
DONNA alle 09:00
1 prenotazione già presente. 1 ≥ 1 → postazione piena.
DONNA alle 09:10
UOMO finito alle 09:10. Nessuna sovrapposizione → accettata.
⚠️
UOMO alle 09:10
Se la DONNA è già confermata, la postazione è occupata → rifiutato.
Con 1 solo collaboratore: il salone funziona come una fila singola. Il servizio più lungo blocca tutto il suo periodo — chi arriva dopo deve aspettare la fine.
2
Scenario intermedio
Venerdì pieno — 5 DONNA + 1 UOMO alle 09:00
Cosa si può prenotare alle 09:10 con 6 collaboratori?
📅 Venerdì ⏱ slot: 10 min 👥 collaboratori: 6 🕘 09:00 → 18:00
09:0009:10 09:2009:40 10:0010:10
Collab. 1
DONNA 60min
Collab. 2
DONNA 60min
Collab. 3
DONNA 60min
Collab. 4
DONNA 60min
Collab. 5
DONNA 60min
Collab. 6
UOMO 10m
❌ nuova DONNA
❌ 09:00
✅ da 09:10 (60min)
OrarioPrenotazioni attivePosti liberiNuova DONNA?Nuovo UOMO?
09:006 (5 DONNA + 1 UOMO)0❌ NO❌ NO
09:105 (solo le DONNA)1✅ 1 sola✅ 1 solo
10:0006✅ fino a 6✅ fino a 6
Attenzione: a 09:10 si può prenotare una sola persona perché le 5 DONNA occupano 5/6 posti fino alle 10:00.
3
Scenario avanzato
Servizi a durate miste — la disponibilità cambia minuto per minuto
Prenotazioni che iniziano in momenti diversi creano un "muro mobile" di disponibilità
📅 Venerdì ⏱ slot: 10 min 👥 collaboratori: 6
09:0009:10 09:2009:30 09:4010:00 10:1010:20
D1 (09:00)
DONNA
D2 (09:10)
DONNA
D3 (09:10)
DONNA
D4 (09:20)
DONNA
U1 (09:30)
UOMO
B1 (09:40)
BIMBO
OrarioPrenotazioni sovrapposteLiberi/6Nuova DONNA?
09:00D1 = 15✅ fino a 5
09:10D1 + D2 + D3 = 33✅ fino a 3
09:20D1 + D2 + D3 + D4 = 42✅ fino a 2
09:30D1+D2+D3+D4+U1 = 51✅ 1 sola
09:40D2+D3+D4+B1 = 42✅ fino a 2
10:00D2+D3+D4 = 33✅ fino a 3
10:2006✅ fino a 6
Chiave: la disponibilità non è fissa per tutta la mattina — si ricalcola slot per slot considerando tutte le prenotazioni che si sovrappongono in quel preciso momento.
4
Pausa pranzo
Martedì con pausa 12:00–13:30 — i servizi "tagliati" dalla pausa
Il sistema esclude automaticamente gli slot che finirebbero durante la pausa
📅 Martedì ⏱ slot: 20 min 👥 collaboratori: 5 ☕ pausa: 12:00–13:30 🕘 08:00–18:00
11:00 11:20 11:40 12:00 PAUSA 13:30 13:50
🚫 Pausa
12:00 → 13:30
✅ DONNA 11:00
DONNA (60 min) → finisce a 12:00 ✅
❌ DONNA 11:20
Finirebbe a 12:20 → entra in pausa → slot non generato
✅ DONNA 13:30
DONNA (60min) → 14:30 ✅
DONNA alle 11:00
11:00 + 60min = 12:00. Finisce esattamente all'inizio pausa. Slot valido.
DONNA dalle 11:20
11:20 + 60min = 12:20. Sforerebbe nella pausa. Lo slot non viene proprio generato.
DONNA alle 13:30
Primo slot valido dopo la pausa. 13:30 + 60min = 14:30 → OK.
Il sistema genera due blocchi separati: 08:00–12:00 e 13:30–18:00. I servizi che finirebbero durante la pausa vengono esclusi automaticamente.
5
Varianti e prezzi
Come funzionano le varianti — il prezzo è sempre base + supplemento
Il cliente vede il prezzo reale in ogni momento, sia nella scheda servizio che nel riepilogo finale
🎨 Servizio con varianti 💰 Prezzo = base + supplemento

Il Taglio Donna (€25) ha tre opzioni: base, con piega o con colore. Il prezzo della variante è il supplemento, non il totale.

Taglio Donna
€25
Servizio base
+
Variante "Piega"
+€15
Supplemento
=
Totale cliente
€40
Quello che paga
Cosa sceglie il clientePrezzo baseSupplemento varianteTotale mostrato
Taglio Donna (base)€25€25
Taglio Donna + Piega€25+€15€40
Taglio Donna + Colore€25+€30€55
Taglio Donna + Colore + n_slot_extra=2€25+€30 + 40min in più€55, durata maggiore
  • 1
    Nella scheda servizio: "da €25"
    Prima che il cliente scelga la variante, la card mostra il prezzo minimo. Dopo la scelta si aggiorna al totale reale.
  • 2
    Il cliente può sempre scegliere il servizio base
    Anche se esistono varianti, c'è sempre l'opzione "base" per chi vuole solo il servizio senza aggiunte.
  • 3
    Nel riepilogo finale: prezzo completo
    Prima di confermare, il riepilogo mostra ogni voce con il prezzo finale corretto (base + supplemento).
Nell'admin: quando si crea una variante, il campo "Supplemento €" indica quanto si aggiunge al prezzo base, non il prezzo totale. Questo evita confusione se il prezzo base cambia.
6
Competenze operatori
Chi viene assegnato — il sistema sceglie solo chi sa fare quel servizio
Niente più confusioni: ogni operatore vede solo i servizi per cui è abilitato
🎓 Competenze configurate 🤖 Assegnazione automatica

Il salone ha tre operatori, ognuno specializzato in servizi diversi:

✂️ Chiara
Taglio Donna Taglio Donna + Colore Colorazione Taglio Uomo
✂️ Giuseppe
Taglio Uomo Taglio Bambino Taglio Donna Colorazione
✂️ Sara
Taglio Donna Taglio Uomo Colorazione Taglio Bambino
Il cliente prenotaOperatori propostiEsclusi
Taglio UomoGiuseppe, SaraChiara (non qualificata)
Taglio DonnaChiara, SaraGiuseppe (non qualificato)
Taglio Donna + ColoreChiara, SaraGiuseppe (non qualificato)
ColorazioneChiara, SaraGiuseppe (non qualificato)
Taglio BambinoGiuseppe, SaraChiara (non qualificata)
  • 1
    Il cliente sceglie il servizio
    Nell'app vengono mostrati solo gli operatori abilitati per quel servizio. Il cliente può scegliere "qualsiasi" oppure un operatore specifico.
  • 2
    Assegnazione automatica al più libero
    Se il cliente non sceglie un operatore, il sistema prende il primo qualificato disponibile in quello slot. Nessuna gestione manuale necessaria.
  • 3
    Le varianti non richiedono competenze extra
    Se un operatore sa fare "Taglio Donna", sa automaticamente fare "Taglio Donna + Piega" o "Taglio Donna + Colore". Non serve configurare le varianti separatamente.
Attenzione alla configurazione: se crei un nuovo servizio nell'admin, ricorda di andare nella sezione operatori e assegnare le competenze. Finché un servizio non ha operatori assegnati, il sistema non troverà nessuno disponibile.
7
Tempo di posa
Chiara fa Taglio + Colore — ma è libera durante la posa
Come il sistema libera l'operatore durante il tempo di attesa del prodotto
⏳ Taglio + Colore: 80 min totali 🎨 Posa: 20 min ⏱ slot: 20 min 👤 Operatore: Chiara

Chiara ha un appuntamento Taglio + Colore alle 09:00. Il servizio dura 80 min in totale, ma gli ultimi 20 min il colore agisce da solo — Chiara può fare altro.

09:00 09:20 09:40 10:00 10:20 10:40
Appuntamento
Taglio + Colore (80 min)
Chiara lavora
60 min lavoro attivo
🎨 Posa
Posa 20min
✅ Chiara libera
Taglio Uomo (20 min)
🔒
Slot 09:00 – 09:40
Chiara è impegnata attivamente. Nessun altro appuntamento per lei in questi slot.
Slot 10:00
Chiara è libera — il colore è in posa. Può accettare un Taglio Uomo di 20 min (finisce alle 10:20, esatto).
Slot 10:20
Chiara torna dal cliente del colore (sciacquo, asciugatura finale). Slot bloccato di nuovo.
  • 1
    Il servizio viene configurato con durata_posa = 20
    Nell'admin, il servizio "Taglio + Colore" ha il campo "Minuti di posa" impostato a 20. Il resto lo fa il sistema.
  • 2
    Il sistema salva "quando Chiara è libera"
    Quando Chiara conferma l'appuntamento, il sistema calcola: 09:00 + 60 min (attivo) = 10:00. Salva questo orario come "fine lavoro operatore".
  • 3
    Lo slot 10:00 appare verde nell'app
    Quando un cliente cerca disponibilità per Chiara, il sistema vede che dalle 10:00 è libera (posa). Lo slot appare disponibile.
  • 4
    Timing perfetto — nessun conflitto
    Il Taglio Uomo (10:00–10:20) finisce esattamente quando finisce l'appuntamento del colore. Chiara torna al cliente del colore per sciacquare.
Come funziona per il cliente: niente di speciale — prenota normalmente. È il sistema che, dietro le quinte, capisce quando l'operatore è fisicamente disponibile, anche nel mezzo di un appuntamento lungo.
8
Posa con inizio_posa — interlacciamento avanzato
Marie ha una donna alle 09:00 e un uomo alle 11:00 — quando è libera per una seconda donna?
Con inizio_posa il sistema conosce esattamente quando l'operatore è libero dentro un appuntamento lungo
👩 Taglio DONNA: 100 min totali ✂️ Fase attiva: 60 min (inizio_posa=60) 🎨 Posa: 40 min 👨 Taglio UOMO: 20 min ⏱ slot base: 20 min 👤 Operatore: Marie

Marie ha Taglio DONNA alle 09:00 (100 min totali: 60 min di lavoro attivo, poi 40 min di posa autonoma — nessuna fase 2 perché 60+40=100 esaurisce il tempo). Alle 11:00 ha un Taglio UOMO da 20 min. Quando può accettare un'altra DONNA?

09:00 09:40 10:00 10:20 10:40 11:00 11:20 11:40 12:00
Donna1 (cliente)
09:00 → 10:40 (100 min)
Marie lavora
Fase attiva (60 min)
🎨 posa (40 min)
UOMO
✅ Marie libera
10:00 → 10:40 libera
dopo 11:20
✅ Donna2 ore 10:00
Fase attiva (60 min)
🎨 posa (40 min)
Uomo (già pren.)
11:00–11:20
🔒
Slot 09:00 → 09:40
Marie è in fase attiva su Donna1. Nessun nuovo appuntamento.
Primo slot libero: 10:00
Donna1 entra in posa alle 10:00 → Marie è libera. Può iniziare subito la fase attiva della nuova Donna2.
Donna2 alle 10:00 — nessun conflitto
Fase attiva Donna2: 10:00–11:00. L'Uomo alle 11:00 cade nella posa di Donna2 → Marie è libera!
🧩
Incastro perfetto
Donna1 finisce a 10:40. Donna2 fase attiva 10:00–11:00. Uomo 11:00–11:20 cade in posa Donna2. Tutto quadra.
  • 1
    Donna1 alle 09:00: inizio_posa=60, durata_posa=40
    Il servizio dura 100 min in totale. L'operatore lavora attivamente per i primi 60 min (09:00–10:00), poi la cliente resta in posa 40 min (10:00–10:40). Nessuna fase 2 perché 60+40=100 esaurisce tutto il tempo.
  • 2
    Dalle 10:00 Marie è libera — il sistema lo sa
    Il database ha salvato data_ora_operatore_fine = 10:40 (fine posa = fine appuntamento). Il sistema vede che fase2Start = data_ora_fine → nessuna fase 2 → Marie è libera da 10:00.
  • 3
    Slot 10:00 non confligge né con Donna1 né con Uomo
    La fase attiva della nuova Donna2 (10:00–11:00) non tocca la fase attiva di Donna1 (09:00–10:00). L'uomo alle 11:00 cade nella finestra di posa di Donna2 (11:00–11:40) → Marie è di nuovo libera.
  • 4
    Perché NON è 11:20 (come si potrebbe pensare)?
    Si potrebbe pensare "l'uomo finisce alle 11:20, quindi da lì Marie è libera." Ma il sistema ragiona sulle fasi attive, non sulla fine degli appuntamenti. Marie è libera già dalle 10:00 — l'uomo alle 11:00 non crea conflitto perché cade nella posa di Donna2.
Perché inizio_posa è fondamentale: senza questo campo il sistema non saprebbe dove dentro l'appuntamento cade la posa. Con inizio_posa=60 il sistema sa esattamente che i primi 60 min sono attivi e il resto è posa — e può liberare l'agenda in modo intelligente.
9
Anti-overbooking
Due clienti cliccano "Prenota" nello stesso secondo — chi vince?
Il meccanismo che impedisce le doppie prenotazioni anche in caso di accesso simultaneo
📅 Giovedì ⏱ slot: 30 min 👥 collaboratori: 1 🔒 Blocco database

Ultimo slot disponibile: 09:00. Due clienti aprono la pagina, vedono lo slot verde, cliccano "Conferma" quasi contemporaneamente.

👤
Maria
Conferma alle 10:03:01.240
✅ PRENOTAZIONE CONFERMATA
VS
👤
Luca
Conferma alle 10:03:01.380
❌ SLOT NON PIÙ DISPONIBILE
  • 1
    Entrambi vedono lo slot verde
    La pagina mostra 0 prenotazioni su 1 possibile. Slot disponibile per entrambi — è normale, la pagina è una fotografia del momento.
  • 2
    Maria arriva 140ms prima — il database la "blocca"
    Il sistema acquisisce un blocco esclusivo sul database. Luca deve aspettare che Maria finisca.
  • 3
    Maria: nessun conflitto → prenotazione confermata
    Trova 0 prenotazioni sovrapposte. Crea la prenotazione e rilascia il blocco.
  • 4
    Luca: 1 conflitto → rifiutato → modale nell'app
    Ora trova 1 prenotazione (quella di Maria). Slot pieno. L'app mostra "Slot non più disponibile, scegli un altro orario".
Risultato: è fisicamente impossibile creare due prenotazioni sullo stesso slot con lo stesso operatore. Il database garantisce che solo una vada a buon fine, anche in caso di migliaia di accessi simultanei.

Tabella di riferimento rapido

Situazione Come funziona Risultato
Slot completamente liberoMeno prenotazioni del numero di collaboratori✅ Disponibile
Slot parzialmente occupatoAlcune prenotazioni ma non tutte le postazioni✅ Disponibile
Slot al completoTutte le postazioni occupate❌ Pieno
Giorno chiusoGiorno non configurato o impostato "chiuso"❌ Chiuso
Servizio cade in pausa pranzoLa fine del servizio supera l'inizio della pausa❌ Slot non generato
Data passataOrario già trascorso❌ Non prenotabile
Chiusura straordinariaQuella data è in elenco chiusure❌ Chiuso
Operatore non qualificatoQuel servizio non è nelle sue competenze❌ Non proposto
Operatore in posaL'appuntamento è nella finestra di posa autonoma✅ Può accettare altro
Variante selezionataSupplemento aggiunto al prezzo base✅ Prezzo corretto mostrato
Doppia prenotazione simultaneaIl database blocca la seconda⚠️ Secondo cliente rifiutato