UC-10 · Les flags d’affichage se calculent hors du modèle
Signal
- Un aggregate ou un value object qui porte des propriétés destinées à l’écran : un booléen qui active un bouton, la couleur d’un statut, une chaîne formatée, un libellé traduit.
- Des getters ajoutés au domaine pour satisfaire une view ou un framework de sérialisation.
Pourquoi
Avec un presentation model, l’adapter de présentation tire les flags de la view de l’état du domaine. Activer un bouton peut dépendre de plusieurs propriétés du modèle, sans correspondre à aucune d’elles. Le domaine ne fournit pas ces propriétés.
Le même adapter comble l’écart entre le langage du modèle (summary()) et un framework qui exige des getters (getSummary()).
Exceptions
Aucune.
Correction
Un presenter ou un mapper de réponse, dans driving/http, qui calcule les flags à partir de la view que la query a renvoyée.
Adaptation
Le presentation model vise une interface riche ou un client desktop. Sur un backend NestJS, le presenter ou le mapper de réponse de driving/http joue ce rôle, à partir de la view d’une query : driving n’importe pas domain.
La limite à tenir : la règle métier qui décide si une action est permise reste dans le domaine (AGG-01) ; un wallet fermé ou bloqué au débit refuse lui-même le débit. Seule sa traduction en flag d’écran sort du modèle.
Voir aussi
VO-08 (pas de libellés affichables dans le modèle), API-01, CTX-10.