Expand task and flight models, add new enums and classes
- Added `TaskHWZ` and `PublicationTask` classes with initial structure. - Introduced `PublicationState` enum for task publication states and enhanced `Task` model with abstract methods, `flight`, and `scoringPeriodEnd` fields. - Extended `TaskStatus`, `FlightStatus`, and `ContactType` enums with new values. - Updated `Flight`, `FlightPublicData`, and their relationships with new fields like `competition`, `separationAltitudeOverride`, and additional notes.
This commit is contained in:
@@ -4,6 +4,10 @@ public enum ContactType {
|
||||
|
||||
ORGANISATOR,
|
||||
EVENT_DIRECTOR,
|
||||
FIESTA_DIRECTOR,
|
||||
SAFETY_OFFICER,
|
||||
JURY_PRESIDENT,
|
||||
CHIEF_SCORER,
|
||||
CHIEF_TARGET,
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ public enum FlightStatus {
|
||||
|
||||
DRAFT,
|
||||
LIVE,
|
||||
SCORING,
|
||||
COMPLETED,
|
||||
CANCELLED
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,9 @@ package dev.coph.flightscore.backend.task;
|
||||
public enum TaskStatus {
|
||||
|
||||
LIVE,
|
||||
CANCELED
|
||||
SCORING,
|
||||
COMPLETED,
|
||||
CANCELED;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*
|
||||
*/
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user