Files
smartbooking/features/configurazione_disponibilita.md
Simone Bierti c64f7b3ca4
Some checks failed
Build and Publish / build (push) Failing after 48s
Add documentation and enhance Conferma entity with QR code tracking
- Add Claude Code documentation (CLAUDE.md) with project overview and development commands
- Add specialized agent configurations (spring-boot-engineer, vue3-frontend-engineer)
- Add feature specifications (check liberatorie, configurazione disponibilità, profilo utente)
- Enhance Conferma entity with codiceQrLink and presenzaConfermata fields
- Update Liquibase changelog and test data for Conferma changes
- Update frontend Conferma component and model with new tracking fields

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-14 19:20:02 +01:00

3.2 KiB

Feature configurazione disponibilità struttura

Contesto

Questa feature dell'applicazione permette agli utenti i ruoli di INCARICATO o ADMIN di accedere alla funzionalità di configurazione delle disponibilità (sia in apertura che in chiusura) di una determinata struttura. Grazie a queste "disponibilità" inserite sarà possibile, insieme alle prenotazioni già accettate per una determinata struttura, determinare l'ammissibilità di una certa prenotazione per suddetta struttura.

Descrizione feature

L'utente loggato al quale è associato il ruolo di INCARICATO oppure di ADMIN ha la possibilità di accedere alla lista strutture inserite a sistema (come quella del componente @src/main/webapp/app/entities/struttura/struttura.vue). Nella tabella html che espone la lista va aggiunto un pulsante all'interno del "

" con una icona font-awesome di un orologio che permetta di accedere alla maschera di visualizzazione e inserimento delle disponibilità della struttura indicata nella riga. La maschera sarà organizzata con in alto una sezione compatta con i dati della struttura (quelli del modello al file @src/main/webapp/app/shared/model/struttura.model.ts) non editabili. Al di sotto una sezione che contenga il form per l'inserimento di una disponibilità per la suddetta struttura. Il form (che tratterà i dati del modello @src/main/webapp/app/shared/model/disponibilita.model.ts) dovrà anch'esso essere organizzato per sezioni:

  • la prima sezione conterrà il dato TipoDisponibilità (visualizzato attraverso una select box prevalorizzata al dato CHIUSURA)
  • la seconda sezione conterrà i dati "oraInizio" e "oraFine" visualizzati sulla stessa riga. Questi determinano l'intervallo di temporale di validità della disponibilità che si sta inserendo
  • la terza sezione conterrà il campo "dataSpecifica" che indica una precisa collocazione temporale di una giornata per la quale si sta configurando la disponibilità (es: 25/12/2025). Accettiamo che possa essere vuoto.
  • la quarta sezione conterrà il dato "giornoSettimana" presentato con una select box senza valore prevalorizzato (accettiamo che possa essere vuoto)
  • infine una sezione per un campo "note" In fondo al form due pulsanti "Inserisci disponibilità" e "Annulla".

Come regola, è possibile eseguire il submit del form se i campi "TipoDisponibilita" e "oraInizio" e "oraFine" sono valorizzati. Inotre deve essere valorizzato in maniera alternativa (o uno o l'altro, non entrambi) o il campo "dataSpecifica" o la select box "giornoSettimana". Al submit del form viene inviata la chiamata all'endpoint di back-end per il salvataggio della dispobilitità per la struttura indicata.

Va realizzato anche un endopoint nell'API del back-end che permetta di eseguire una chiamata passando come parametri:

  • l'id di una struttura
  • data e ora di inizio
  • data e ora di fine (che saranno determinate nel form di inserimento nuova prenotazione) La logica di business recupererà per la struttura le prenotazioni già accettate e le disponibilità inserite valutando se le stesse date indicate nella chiamata non si sovrappongono ad una prenotazione accettata o cadono in una indisponibilità (disponibilità di tipo CHIUSURA) indicata per la struttura.