Sto cercando di capire come funziona DDD, e capisco che ho un domain object
e un domain service
.
Il mio oggetto dominio è un interaction
che può essere di diversi tipi di interazione con un cliente, come una riunione, una telefonata, una visita ecc.
Quindi ho creato un interaction service
e ora voglio creare la logica se l'utente corrente è autorizzato a modificare l'interazione.
Ora questa è una validazione estesa perché l'utente corrente può essere il creatore, può essere delegato a modificarlo, può essere nello stesso gruppo di utenti in cui si trova il creatore, può essere il teamlead, può avere l'interaction-edit -elevata-diritti e l'interazione non deve essere nel passato, chiuso, in attesa ecc ecc.
Questa convalida è anche un metodo su interactionservice
? Come deve controllare il database per più cose, ho capito che non può essere sull'oggetto interaction
stesso.
Creo un metodo canedit(int userid)
e poi anche un metodo candelete(userid)
su interactionservice
oppure creo un interactionallowedactionsservice
separato o lo gestisco in un altro modo?