Sono abbastanza nuovo per DDD, quindi abbi pazienza con me.
Ho una chat room e persone nella chat room. Le persone nella chat room devono proporre una data in cui desidererebbero un webinar. abbiamo una regola di bussiness, in cui abbiamo bisogno di avere almeno 3 persone nel webinar per il webinar e ogni persona interessata al webinar deve dire che è pronta per qualcuno a proporre una data
Ho in mente 2 soluzioni
soluzione 1:
Rendere la chat room la radice aggregata
Avere una funzione di proporre la data nella chat room, ProposeDate (Person, Date).
In questa soluzione vorrei convalidare le regole di bussiness nella chat room e impostare la data sull'entità persona.
Un problema Con questa soluzione è che abbiamo un setter sull'entità persona che può essere chiamato da qualsiasi parte nel dominio senza il riferimento alla convalida nella chat room, se la data proposta per ogni persona viene effettivamente rimossa dall'entità persona e impostata sulla chat room stessa in modo che non possa essere impostata senza chiamare l'entità della chat room?
soluzione 2
Rendi persona la radice aggregata
On Person have ProposeDate (Date) .e person chiede a Chat room posso proporre questa data. Il problema che ho con questa soluzione è che credo invalida il tell non chiedere principio.
Se ho sbagliato tutto e c'è un'altra soluzione per favore fammelo sapere.
Le persone devono proporre / accettare / rifiutare le date l'una con l'altra.