Class EventoService
Questa classe implementa la business logic per la creazione, il recupero e la manipolazione
delle entità EventoEntity. Gestisce le transazioni database tramite l'annotazione Transactional,
assicurando che operazioni complesse siano atomiche.
Integra la gestione delle eccezioni custom come EventoNotFound per fornire feedback
semantici ai layer superiori.
- Since:
- 1.2.0
- Version:
- 1.8.2
- Author:
- Modulink Team
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionEventoService(EventoRepository eventoRepository) Costruttore per Dependency Injection. -
Method Summary
Modifier and TypeMethodDescriptioncreate(EventoEntity eventoEntity) Persiste un nuovo evento nel database, gestendo la generazione manuale dell'ID.voiddeleteAllByAzienda(AziendaEntity aziendaEntity) Rimuove tutti gli eventi associati a un'azienda.findAllByUtente(UtenteEntity utente) Recupera la lista di eventi pertinenti a un utente specifico.findByAzienda(AziendaEntity aziendaEntity) Recupera tutti gli eventi associati a una determinata azienda.Cerca un evento tramite la sua chiave primaria composta.voidupdate(EventoEntity evento) Aggiorna i dati di un evento esistente.
-
Field Details
-
eventoRepository
-
-
Constructor Details
-
EventoService
Costruttore per Dependency Injection.- Parameters:
eventoRepository- Repository per l'accesso ai dati degli eventi.- Since:
- 1.2.0
-
-
Method Details
-
create
Persiste un nuovo evento nel database, gestendo la generazione manuale dell'ID.Questo metodo calcola il prossimo identificativo locale disponibile per l'azienda interrogando il repository per l'evento con ID massimo (
EventoRepository.findMaxIdByAzienda(AziendaEntity)). Se non esistono eventi, l'ID parte da 0.L'operazione è transazionale per garantire che il calcolo e il salvataggio avvengano atomicamente.
- Parameters:
eventoEntity- L'entità evento da salvare (senza ID impostato).- Returns:
- L'entità evento persistita, completa di ID assegnato.
- Since:
- 1.2.0
-
findAllByUtente
Recupera la lista di eventi pertinenti a un utente specifico.Aggrega sia gli eventi creati dall'utente che quelli a cui partecipa.
- Parameters:
utente- L'utente per cui filtrare gli eventi.- Returns:
- Lista di eventi correlati.
- Since:
- 1.4.0
- See Also:
-
findByAzienda
Recupera tutti gli eventi associati a una determinata azienda.- Parameters:
aziendaEntity- L'azienda target.- Returns:
- Lista di eventi dell'azienda.
- Since:
- 1.2.0
-
findById
Cerca un evento tramite la sua chiave primaria composta.Se l'evento non viene trovato, lancia un'eccezione runtime
EventoNotFound.- Parameters:
eventoID- Oggetto chiave primaria composta (ID evento + ID azienda).- Returns:
- L'entità trovata.
- Throws:
EventoNotFound- Se l'evento non esiste nel DB.- Since:
- 1.2.0
-
update
Aggiorna i dati di un evento esistente.Funzionalmente equivalente a
create(EventoEntity), ma semanticamente distinto per chiarezza del codice client.- Parameters:
evento- L'entità con i dati aggiornati.- Since:
- 1.3.0
-
deleteAllByAzienda
Rimuove tutti gli eventi associati a un'azienda.Esegue una cancellazione massiva e forza il flush del contesto di persistenza per rendere immediate le modifiche nel DB. Include logging a console per audit (livello INFO).
- Parameters:
aziendaEntity- L'azienda i cui eventi devono essere eliminati.- Since:
- 1.5.0
-