package be.swsb.fiazard.common.eventsourcing; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import org.mongojack.MongoCollection; import org.mongojack.ObjectId; import java.util.Date; @MongoCollection(name = "events") @JsonTypeInfo(use = Id.CLASS, include = As.PROPERTY, property = "type") public class Event { @JsonProperty("_id") private org.bson.types.ObjectId id; private Date timestamp; public Event() { this.id = new org.bson.types.ObjectId(); this.timestamp = new Date(); } @JsonCreator public Event(@ObjectId @JsonProperty("_id") org.bson.types.ObjectId id, @JsonProperty("timestamp") Date timestamp) { this.id = id; this.timestamp = timestamp; } public org.bson.types.ObjectId getId() { return id; } public Date getTimestamp() { return timestamp; } }