Cercando di convertire alcune entità in oggetti valore sono bloccato in un caso in cui ciò che sembra un oggetto valore deve essere univoco all'interno di un aggregato.
Supponiamo di avere un'entità Film che costituisce la radice di un aggregato. Questa entità Film è correlata ad alcuni set di oggetti AdvertisementEvent con il ruolo di visualizzare un annuncio pubblicitario ad un determinato timestamp.
AdvertisementEvent contiene un link ad alcuni Banner che devono essere visualizzati, le coordinate e alcuni filtri di effetti.
Poiché AdvertisementEvent è solo una raccolta di parametri di configurazione non sono sicuro se dovrei preoccuparmi della sua identità e trattarla come un semplice oggetto di valore elevato. Tuttavia, mi interessa che all'interno di un film ci sia solo un AdvertisementEvent a un determinato timestamp, probabilmente anche intorno a i timestamp.
Trovo difficile dividere i miei dubbi in più domande indipendenti, quindi eccoli:
- Una collezione di parametri di configurazione suona come un oggetto valore?
- Sto mescolando il concetto di unicità di AdvertisementEvent in Movie e la regola di integrità della transazione?
- qualsiasi delle scelte nel punto (2) implica che AdvertisementEvent deve essere un membro dell'aggregato creato da Film ?
- Il mio oggetto AdvertisementEvent è un'entità, un oggetto valore o un oggetto evento? (Ho usato il suffisso Event nel nome per evidenziare la mia confusione)
- Gli oggetti di grande valore come questo sono un odore di design?
Immagino di non aver a che fare con un evento nel senso di DDD perché non è qualcosa che solo succede . Il vero evento DDD dovrebbe essere qualcosa di più come AdvertisementEventReached