diff --git a/src/main/java/dev/coph/flightscore/backend/competition/contact/ContactType.java b/src/main/java/dev/coph/flightscore/backend/competition/contact/ContactType.java index 37797cf..c3ed3e6 100644 --- a/src/main/java/dev/coph/flightscore/backend/competition/contact/ContactType.java +++ b/src/main/java/dev/coph/flightscore/backend/competition/contact/ContactType.java @@ -4,6 +4,10 @@ public enum ContactType { ORGANISATOR, EVENT_DIRECTOR, + FIESTA_DIRECTOR, SAFETY_OFFICER, + JURY_PRESIDENT, + CHIEF_SCORER, + CHIEF_TARGET, } diff --git a/src/main/java/dev/coph/flightscore/backend/flight/Flight.java b/src/main/java/dev/coph/flightscore/backend/flight/Flight.java index 777560f..1413cb8 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/Flight.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/Flight.java @@ -1,5 +1,6 @@ package dev.coph.flightscore.backend.flight; +import dev.coph.flightscore.backend.competition.Competition; import lombok.Getter; import lombok.experimental.Accessors; @@ -8,14 +9,15 @@ import java.time.LocalDate; @Getter @Accessors(fluent = true) public class Flight { - + private Competition competition; private int flightNumber; private FlightStatus status; private FlightType type; private LocalDate date; private Daytime daytime; private int qnh; - + private Integer separationAltitudeOverride; + private FlightPublicData publicData; private FlightScoringData scoringData; diff --git a/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java b/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java index 2136fb0..b32c6a1 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java @@ -12,12 +12,15 @@ public class FlightPublicData { private String launchArea; private String launchPeriod; - private String MinimumILPToGoals; + private String minimumILPToGoals; private Boolean soloFlightRequired; - private String SunsetAndSunrise; - private String PZsInForce; + private String sunsetAndSunrise; + private String pZsInForce; private String searchPeriod; private String nextBriefing; + + /* + Additional notes for the flight. E.g., for reduced time periods or temporary change of blue pz altitudes, ... + */ private String additionalNotes; - } diff --git a/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java b/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java index 534fe03..93d76fc 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java @@ -4,6 +4,7 @@ public enum FlightStatus { DRAFT, LIVE, + SCORING, COMPLETED, CANCELLED diff --git a/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java b/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java new file mode 100644 index 0000000..51761a9 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java @@ -0,0 +1,18 @@ +package dev.coph.flightscore.backend.task; + +import lombok.Getter; +import lombok.experimental.Accessors; + +@Getter +@Accessors(fluent = true) +public enum PublicationState { + SCORING(false), + PROVISIONAL(false), + OFFICIAL(true), + FINAL(true); + + final boolean versionable; + PublicationState(boolean versionable) { + this.versionable = versionable; + } +} diff --git a/src/main/java/dev/coph/flightscore/backend/task/PublicationTask.java b/src/main/java/dev/coph/flightscore/backend/task/PublicationTask.java new file mode 100644 index 0000000..1d209e9 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/PublicationTask.java @@ -0,0 +1,15 @@ +package dev.coph.flightscore.backend.task; + +import java.time.Instant; + +public class PublicationTask { + private final PublicationState state; + private final Instant timestamp; + + //TODO + + public PublicationTask(PublicationState state, Instant timestamp) { + this.state = state; + this.timestamp = timestamp; + } +} diff --git a/src/main/java/dev/coph/flightscore/backend/task/Task.java b/src/main/java/dev/coph/flightscore/backend/task/Task.java index e49a26b..1da60b8 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/Task.java +++ b/src/main/java/dev/coph/flightscore/backend/task/Task.java @@ -1,14 +1,24 @@ package dev.coph.flightscore.backend.task; +import dev.coph.flightscore.backend.flight.Flight; +import dev.coph.flightscore.backend.flight.FlightScoringData; +import dev.coph.simpleutilities.ulid.ULID; import lombok.Getter; import lombok.experimental.Accessors; +import org.json.JSONObject; import java.time.Instant; @Getter @Accessors(fluent = true) -public class Task { +public abstract class Task { + private Flight flight; + private ULID id; private int taskNumber; private TaskStatus status; private Instant scoringPeriodeEnd; + private Integer separationAltitudeOverride; + + public abstract JSONObject serialize(); + public abstract Task deserialize(JSONObject json); } diff --git a/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java b/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java index 5983735..4118be5 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java +++ b/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java @@ -3,7 +3,9 @@ package dev.coph.flightscore.backend.task; public enum TaskStatus { LIVE, - CANCELED + SCORING, + COMPLETED, + CANCELED; } diff --git a/src/main/java/dev/coph/flightscore/backend/task/impl/TaskHWZ.java b/src/main/java/dev/coph/flightscore/backend/task/impl/TaskHWZ.java new file mode 100644 index 0000000..b4e9d08 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/impl/TaskHWZ.java @@ -0,0 +1,16 @@ +package dev.coph.flightscore.backend.task.impl; + +import dev.coph.flightscore.backend.task.Task; + +public class TaskHWZ extends Task { + + /** + * + * TaskNumber INT (UNSIGNED) + * ScoringPeriod TIMESTAMP + * Status STRING + * Data JSON + * + */ + +}