application { config { applicationType monolith authenticationType session baseName smartbooking buildTool gradle cacheProvider ehcache clientFramework vue clientTheme yeti clientThemeVariant primary creationTimestamp 1765013775744 databaseType sql devDatabaseType postgresql enableGradleEnterprise false enableHibernateCache true enableTranslation true jhipsterVersion "8.11.0" languages [it] microfrontends [] nativeLanguage it packageName it.softwarepa.comune.artegna prodDatabaseType postgresql reactive false rememberMeKey "810f1205976fd73602beb36796a53c78e3c4974c4fe22f343acbab764cdc74e50f3aeb807a64e1aa922f6f557ada00a8c89f" testFrameworks [cucumber, cypress] withAdminUi true } entities AuditLog, Conferma, Disponibilita, Notifica, Prenotazione, Struttura, UtenteApp, Messaggio } entity AuditLog { entitaTipo TipoEntita entitaId Long azione AzioneAudit dettagli String ipAddress String createdAt Instant } entity Disponibilita { giornoSettimana GiornoSettimana dataSpecifica LocalDate oraInizio Instant oraFine Instant orarioInizio String orarioFine String tipo TipoDisponibilita note String } entity Notifica { tipoCanale TipoCanaleNotifica tipoEvento TipoEventoNotifica messaggio String inviata Boolean inviataAt Instant errore String createdAt Instant } entity Prenotazione { oraInizio Instant oraFine Instant stato StatoPrenotazione motivoEvento String numeroPartecipanti Integer noteUtente String } entity Conferma { motivoConferma String tipoConferma TipoConferma } entity Struttura { nome String descrizione String indirizzo String capienzaMax Integer attiva Boolean fotoUrl String createdAt Instant updatedAt Instant } entity UtenteApp { username String required unique email String required telefono String ruolo Ruolo required attivo Boolean required createdAt Instant updatedAt Instant } entity Messaggio { spedito Instant testo String letto Instant } enum TipoEntita { PRENOTAZIONE, CONFERMA } enum TipoConferma { CONFERMATA, RIFIUTATA } enum AzioneAudit { CREATE, UPDATE, DELETE, CONFIRM, REJECT } enum GiornoSettimana { LUNEDI, MARTEDI, MERCOLEDI, GIOVEDI, VENERDI, SABATO, DOMENICA } enum TipoDisponibilita { DISPONIBILE, CHIUSURA } enum TipoCanaleNotifica { EMAIL, WHATSAPP, SISTEMA } enum TipoEventoNotifica { RICHIESTA_CREATA, PRENOTAZIONE_CONFERMATA, PRENOTAZIONE_RIFIUTATA, REMINDER, ANNULLAMENTO } enum StatoPrenotazione { RICHIESTA, CONFERMATA, RIFIUTATA, ANNULLATA } enum Ruolo { USER, INCARICATO, ADMIN } relationship OneToOne { Prenotazione to Conferma } relationship ManyToOne { AuditLog{utente(username)} to UtenteApp Disponibilita{struttura(nome)} to Struttura{disponibilita} Notifica{conferma} to Conferma Prenotazione{utente(username)} to UtenteApp Prenotazione{struttura(nome)} to Struttura Conferma{confermataDa(username)} to UtenteApp Messaggio{utente(username)} to UtenteApp } dto AuditLog, Disponibilita, Notifica, Prenotazione, Conferma, Struttura, UtenteApp, Messaggio with mapstruct paginate AuditLog, Notifica, Prenotazione, Struttura, Conferma with pagination paginate Disponibilita with infinite-scroll service AuditLog, Conferma, Disponibilita, Notifica, Prenotazione, Struttura, UtenteApp with serviceImpl search AuditLog, Conferma, Disponibilita, Notifica, Prenotazione, Struttura, UtenteApp with no filter AuditLog, Notifica, Prenotazione, Struttura, Conferma