use crateAggregateRoot;
use crateMessage;
/// `DomainEvent` is a trait that defines an event relevant to the domain. These are always facts about something
/// that has already occurred that has domain significance. An event has a time at which the event occurred,
/// and an id that corresponds to which aggregate id the event corresponds to. The implementor
/// should also be sure to pass the aggregates `version` in when they create the event, so that
/// events can be processed in the correct order.