package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto; import com.google.auto.value.AutoValue; import java.time.Instant; import java.util.Set; import javax.annotation.Nullable; @AutoValue public abstract class Operation { public enum Severity { A, B, C, D, E, O, } public enum Status { ACTIVE, COMPLETED, CANCELLED, } public abstract long id(); public abstract String opCode(); @Nullable public abstract Severity severity(); public abstract Status status(); public abstract Set vehicles(); @Nullable public abstract Instant created(); public abstract String destination(); @Nullable public abstract String additionalInfo(); public static Builder builder() { return new AutoValue_Operation.Builder().id(0); } @AutoValue.Builder public abstract static class Builder { public abstract Builder id(long id); public abstract Builder opCode(String opCode); public abstract Builder severity(Severity severity); public abstract Builder status(Status status); public abstract Builder vehicles(Set vehicles); public abstract Builder created(Instant created); public abstract Builder destination(String destination); public abstract Builder additionalInfo(String additionalInfo); public abstract Operation build(); } public abstract Builder toBuilder(); }