package me.belkacemi.iotalarm.domain.event; import java.time.Instant; /** * Fait metier avere, au passe, immuable. * *

Scellee : la liste des faits que ce domaine sait produire est fermee et * connue du compilateur. Toute exhaustivite (routage, projection, audit) est * donc verifiee a la compilation.

*/ public sealed interface DomainEvent permits IntrusionDetected, AlarmArmed, AlarmDisarmed { /** Zone concernee. Ici une seule : le studio. */ String zoneId(); /** Quand le fait s'est produit, du point de vue du domaine. */ Instant occurredAt(); }