Il dominio è più o meno semplice - ho un articolo (o piuttosto diversi tipi di articoli) che voglio modificare e pubblicare. L'articolo pubblicato è esposto attraverso un'API al pubblico. La cosa su cui ho un problema è la modifica di un articolo pubblicato. Versioning, revisioni, ecc. Sono irrilevanti al momento. Ho solo bisogno di modellare questo processo:
- Autore / editor crea un articolo (abbiamo un nuovo articolo)
- L'autore lo modifica e lo salva (i dati dell'articolo vengono aggiornati)
- L'autore lo pubblica (l'articolo diventa disponibile al pubblico)
- L'autore modifica l'articolo di nuovo e salva (la versione pubblicata non cambia, cosa succede all'articolo?)
Non lo metto come un "cambiamento di stato" nella mia descrizione in quanto potrebbe far apparire lo schema di stato prima del necessario. Ho provato ad affrontare il problema nei seguenti modi:
- Articolo come un aggregato attraverso il quale è possibile accedere alla versione corrente e alla versione pubblicata. Ma sembra strano dato che fondamentalmente fa riferimento alle sue versioni
- Suddividi il problema in due contesti (modifica e pubblicazione) e crea una nuova entità PublishedArticle quando l'articolo viene pubblicato, ma in realtà non modella la situazione reale. Nessun esperto di dominio dirà "Creiamo un articolo pubblicato da questo articolo"
- Ho esaminato lo schema degli stati ma mi sono perso cercando di capire come usarlo nel mio concreto esempio.
DB / lingue sono irrilevanti. Vedrò volentieri qualcosa di utile, che si tratti di un collegamento per ulteriori ricerche o di un codice in qualsiasi lingua. Grazie