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,
|
ORGANISATOR,
|
||||||
EVENT_DIRECTOR,
|
EVENT_DIRECTOR,
|
||||||
|
FIESTA_DIRECTOR,
|
||||||
SAFETY_OFFICER,
|
SAFETY_OFFICER,
|
||||||
|
JURY_PRESIDENT,
|
||||||
|
CHIEF_SCORER,
|
||||||
|
CHIEF_TARGET,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package dev.coph.flightscore.backend.flight;
|
package dev.coph.flightscore.backend.flight;
|
||||||
|
|
||||||
|
import dev.coph.flightscore.backend.competition.Competition;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
@@ -8,13 +9,14 @@ import java.time.LocalDate;
|
|||||||
@Getter
|
@Getter
|
||||||
@Accessors(fluent = true)
|
@Accessors(fluent = true)
|
||||||
public class Flight {
|
public class Flight {
|
||||||
|
private Competition competition;
|
||||||
private int flightNumber;
|
private int flightNumber;
|
||||||
private FlightStatus status;
|
private FlightStatus status;
|
||||||
private FlightType type;
|
private FlightType type;
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
private Daytime daytime;
|
private Daytime daytime;
|
||||||
private int qnh;
|
private int qnh;
|
||||||
|
private Integer separationAltitudeOverride;
|
||||||
|
|
||||||
private FlightPublicData publicData;
|
private FlightPublicData publicData;
|
||||||
private FlightScoringData scoringData;
|
private FlightScoringData scoringData;
|
||||||
|
|||||||
@@ -12,12 +12,15 @@ public class FlightPublicData {
|
|||||||
|
|
||||||
private String launchArea;
|
private String launchArea;
|
||||||
private String launchPeriod;
|
private String launchPeriod;
|
||||||
private String MinimumILPToGoals;
|
private String minimumILPToGoals;
|
||||||
private Boolean soloFlightRequired;
|
private Boolean soloFlightRequired;
|
||||||
private String SunsetAndSunrise;
|
private String sunsetAndSunrise;
|
||||||
private String PZsInForce;
|
private String pZsInForce;
|
||||||
private String searchPeriod;
|
private String searchPeriod;
|
||||||
private String nextBriefing;
|
private String nextBriefing;
|
||||||
private String additionalNotes;
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
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,
|
DRAFT,
|
||||||
LIVE,
|
LIVE,
|
||||||
|
SCORING,
|
||||||
COMPLETED,
|
COMPLETED,
|
||||||
CANCELLED
|
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;
|
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.Getter;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Accessors(fluent = true)
|
@Accessors(fluent = true)
|
||||||
public class Task {
|
public abstract class Task {
|
||||||
|
private Flight flight;
|
||||||
|
private ULID id;
|
||||||
private int taskNumber;
|
private int taskNumber;
|
||||||
private TaskStatus status;
|
private TaskStatus status;
|
||||||
private Instant scoringPeriodeEnd;
|
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 {
|
public enum TaskStatus {
|
||||||
|
|
||||||
LIVE,
|
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