Al intentar convertir algunas entidades en objetos de valor, estoy atrapado en un caso en el que lo que parece un objeto de valor debe ser único dentro de un agregado.
Supongamos que tenemos una entidad Movie que forma la raíz de un agregado. Esta entidad de película está relacionada con algún conjunto de objetos AdvertisingEvent con la función de mostrar un anuncio en una determinada marca de tiempo.
El EventEvent contiene un enlace a un Banner que se debe mostrar, las coordenadas y algunos filtros de efectos.
Dado que AdvertisingEvent es solo una colección de parámetros de configuración, no estoy seguro de si debería preocuparme por su identidad y tratarla como un objeto de gran valor. Sin embargo, me importa que dentro de una película debe haber solo un evento de anuncio en una determinada marca de tiempo, probablemente incluso alrededor de las marcas de tiempo.
Me resulta difícil dividir mis dudas en múltiples preguntas independientes, así que ahí van:
- ¿Una colección de parámetros de configuración suena como un objeto de valor?
- ¿Estoy mezclando el concepto de unicidad de AdvertisingEvent dentro de Movie y la regla de integridad transaccional?
- ¿ Alguna de las opciones en el punto (2) implica que AdvertisementEvent debe ser miembro del agregado realizado por Movie ?
- ¿Es mi objeto AdvertisingEvent una entidad, un objeto de valor o un objeto de evento? (Usé el sufijo Evento en el nombre para resaltar mi confusión)
- ¿Son objetos de gran valor como este un olor de diseño?
Supongo que no estoy tratando con un Evento en el sentido de DDD porque no es algo que simplemente sucede . El verdadero evento DDD debería ser algo más como AdvertisementEventReached
fuente