21 lines
592 B
Java
21 lines
592 B
Java
|
|
package me.belkacemi.iotalarm.domain.event;
|
||
|
|
|
||
|
|
import java.time.Instant;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Fait metier avere, au passe, immuable.
|
||
|
|
*
|
||
|
|
* <p>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.</p>
|
||
|
|
*/
|
||
|
|
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();
|
||
|
|
}
|