diff --git a/src/main/java/dev/coph/flightscore/backend/competition/Competition.java b/src/main/java/dev/coph/flightscore/backend/competition/Competition.java index b286130..2008770 100644 --- a/src/main/java/dev/coph/flightscore/backend/competition/Competition.java +++ b/src/main/java/dev/coph/flightscore/backend/competition/Competition.java @@ -28,6 +28,7 @@ public class Competition { private String website; private AltitudeSource altitudeSource; private Altitude seperationAltitude; + private boolean publishCurrentStandings; private HashMap commonLaunchPoints; private HashSet contacts; diff --git a/src/main/java/dev/coph/flightscore/backend/competition/CompetitionProvider.java b/src/main/java/dev/coph/flightscore/backend/competition/CompetitionProvider.java index 4123b1c..00babfc 100644 --- a/src/main/java/dev/coph/flightscore/backend/competition/CompetitionProvider.java +++ b/src/main/java/dev/coph/flightscore/backend/competition/CompetitionProvider.java @@ -13,7 +13,7 @@ public class CompetitionProvider implements Provider { @Override public void createDatabaseTables(Query query) { - + } @Override diff --git a/src/main/java/dev/coph/flightscore/backend/competition/CompetitionType.java b/src/main/java/dev/coph/flightscore/backend/competition/CompetitionType.java index 0fdff2b..7b9e9d8 100644 --- a/src/main/java/dev/coph/flightscore/backend/competition/CompetitionType.java +++ b/src/main/java/dev/coph/flightscore/backend/competition/CompetitionType.java @@ -6,6 +6,6 @@ public enum CompetitionType { CONTINENTAL_CHAMPIONSHIP, NATIONAL_CHAMPIONSHIP, STATE_OR_REGIONAL_CHAMPIONSHIP, - OTHER; + OTHER } diff --git a/src/main/java/dev/coph/flightscore/backend/coordinate/PositionValid.java b/src/main/java/dev/coph/flightscore/backend/coordinate/PositionValid.java index fb6c6e3..78a21ed 100644 --- a/src/main/java/dev/coph/flightscore/backend/coordinate/PositionValid.java +++ b/src/main/java/dev/coph/flightscore/backend/coordinate/PositionValid.java @@ -1,8 +1,8 @@ package dev.coph.flightscore.backend.coordinate; public enum PositionValid { - + FIX_3D, - NO_FIX_OR_2D; + NO_FIX_OR_2D } 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 b32c6a1..1645fd3 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/FlightPublicData.java @@ -18,7 +18,7 @@ public class FlightPublicData { 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, ... */ diff --git a/src/main/java/dev/coph/flightscore/backend/flight/FlightScoringData.java b/src/main/java/dev/coph/flightscore/backend/flight/FlightScoringData.java index fe19f17..39d1009 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/FlightScoringData.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/FlightScoringData.java @@ -12,5 +12,5 @@ public class FlightScoringData { private Instant launchPeriodStart; private Instant launchPeriodEnd; private Integer minimumILPToGoalsInMeter; - + } 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 93d76fc..8b620a3 100644 --- a/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java +++ b/src/main/java/dev/coph/flightscore/backend/flight/FlightStatus.java @@ -1,6 +1,6 @@ package dev.coph.flightscore.backend.flight; -public enum FlightStatus { +public enum FlightStatus { DRAFT, LIVE, diff --git a/src/main/java/dev/coph/flightscore/backend/pilot/Pilot.java b/src/main/java/dev/coph/flightscore/backend/pilot/Pilot.java new file mode 100644 index 0000000..e5dfdfd --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/pilot/Pilot.java @@ -0,0 +1,6 @@ +package dev.coph.flightscore.backend.pilot; + +public class Pilot { + + +} diff --git a/src/main/java/dev/coph/flightscore/backend/provider/ProviderManager.java b/src/main/java/dev/coph/flightscore/backend/provider/ProviderManager.java index 8a22dae..d2d5e1a 100644 --- a/src/main/java/dev/coph/flightscore/backend/provider/ProviderManager.java +++ b/src/main/java/dev/coph/flightscore/backend/provider/ProviderManager.java @@ -3,13 +3,7 @@ package dev.coph.flightscore.backend.provider; import dev.coph.flightscore.backend.Backend; import dev.coph.simplesql.query.Query; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Deque; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; public class ProviderManager { private final Backend backend; @@ -25,20 +19,6 @@ public class ProviderManager { query.execute(); } - public void enableAllProviders() { - Query query = new Query(backend.databaseAdapter()); - resolveOrder().forEach(provider -> provider.onEnable(query)); - query.execute(); - } - - public void registerProvider(Provider provider) { - providers.put(provider.key(), provider); - } - - public T provider(String key) { - return (T) providers.get(key); - } - private List resolveOrder() { HashMap inDegree = new HashMap<>(); HashMap> dependents = new HashMap<>(); @@ -84,4 +64,18 @@ public class ProviderManager { return ordered; } + public void enableAllProviders() { + Query query = new Query(backend.databaseAdapter()); + resolveOrder().forEach(provider -> provider.onEnable(query)); + query.execute(); + } + + public void registerProvider(Provider provider) { + providers.put(provider.key(), provider); + } + + public T provider(String key) { + return (T) providers.get(key); + } + } diff --git a/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java b/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java index 51761a9..2a3f6c0 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java +++ b/src/main/java/dev/coph/flightscore/backend/task/PublicationState.java @@ -12,6 +12,7 @@ public enum PublicationState { 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 index 1d209e9..a302d54 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/PublicationTask.java +++ b/src/main/java/dev/coph/flightscore/backend/task/PublicationTask.java @@ -7,7 +7,7 @@ public class PublicationTask { 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 1da60b8..5260069 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/Task.java +++ b/src/main/java/dev/coph/flightscore/backend/task/Task.java @@ -1,24 +1,37 @@ 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.Setter; import lombok.experimental.Accessors; import org.json.JSONObject; import java.time.Instant; +@Setter @Getter @Accessors(fluent = true) public abstract class Task { - private Flight flight; - private ULID id; + private final ULID id; + private final Flight flight; private int taskNumber; private TaskStatus status; private Instant scoringPeriodeEnd; private Integer separationAltitudeOverride; - - public abstract JSONObject serialize(); - public abstract Task deserialize(JSONObject json); + + protected Task(ULID id, Flight flight) { + this.id = id; + this.flight = flight; + } + + public abstract String rule(); + + public abstract String abbreviation(); + + 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 4118be5..4c4b4e1 100644 --- a/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java +++ b/src/main/java/dev/coph/flightscore/backend/task/TaskStatus.java @@ -5,7 +5,7 @@ public enum TaskStatus { LIVE, SCORING, COMPLETED, - CANCELED; - + 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 deleted file mode 100644 index b4e9d08..0000000 --- a/src/main/java/dev/coph/flightscore/backend/task/impl/TaskHWZ.java +++ /dev/null @@ -1,16 +0,0 @@ -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 - * - */ - -} diff --git a/src/main/java/dev/coph/flightscore/backend/task/type/TaskHWZ.java b/src/main/java/dev/coph/flightscore/backend/task/type/TaskHWZ.java new file mode 100644 index 0000000..037922b --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/type/TaskHWZ.java @@ -0,0 +1,33 @@ +package dev.coph.flightscore.backend.task.type; + +import dev.coph.flightscore.backend.flight.Flight; +import dev.coph.flightscore.backend.task.Task; +import dev.coph.simpleutilities.ulid.ULID; +import org.json.JSONObject; + +public class TaskHWZ extends Task { + + public TaskHWZ(ULID id, Flight flight) { + super(id, flight); + } + + @Override + public String rule() { + return ""; + } + + @Override + public String abbreviation() { + return ""; + } + + @Override + public JSONObject serialize() { + return null; + } + + @Override + public Task deserialize(JSONObject json) { + return null; + } +} diff --git a/src/main/java/dev/coph/flightscore/backend/task/type/TaskJDG.java b/src/main/java/dev/coph/flightscore/backend/task/type/TaskJDG.java new file mode 100644 index 0000000..24b5fe8 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/type/TaskJDG.java @@ -0,0 +1,34 @@ +package dev.coph.flightscore.backend.task.type; + +import dev.coph.flightscore.backend.flight.Flight; +import dev.coph.flightscore.backend.task.Task; +import dev.coph.simpleutilities.ulid.ULID; +import org.json.JSONObject; + +public class TaskJDG extends Task { + + + protected TaskJDG(ULID id, Flight flight) { + super(id, flight); + } + + @Override + public String rule() { + return ""; + } + + @Override + public String abbreviation() { + return ""; + } + + @Override + public JSONObject serialize() { + return null; + } + + @Override + public Task deserialize(JSONObject json) { + return null; + } +} diff --git a/src/main/java/dev/coph/flightscore/backend/task/type/TaskPDG.java b/src/main/java/dev/coph/flightscore/backend/task/type/TaskPDG.java new file mode 100644 index 0000000..2ba59b6 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/task/type/TaskPDG.java @@ -0,0 +1,34 @@ +package dev.coph.flightscore.backend.task.type; + +import dev.coph.flightscore.backend.flight.Flight; +import dev.coph.flightscore.backend.task.Task; +import dev.coph.simpleutilities.ulid.ULID; +import org.json.JSONObject; + +public class TaskPDG extends Task { + + + protected TaskPDG(ULID id, Flight flight) { + super(id, flight); + } + + @Override + public String rule() { + return "15.1"; + } + + @Override + public String abbreviation() { + return "PDG"; + } + + @Override + public JSONObject serialize() { + return null; + } + + @Override + public Task deserialize(JSONObject json) { + return null; + } +} diff --git a/src/main/java/dev/coph/flightscore/backend/track/Declaration.java b/src/main/java/dev/coph/flightscore/backend/track/Declaration.java new file mode 100644 index 0000000..4d2c618 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/track/Declaration.java @@ -0,0 +1,18 @@ +package dev.coph.flightscore.backend.track; + +import dev.coph.flightscore.backend.coordinate.Coordinate; +import lombok.Getter; +import lombok.experimental.Accessors; + +@Getter +@Accessors(fluent = true) +public class Declaration { + private int number; + private Coordinate declaration; + private Coordinate positionAtDeclaration; + + private boolean isHeightPilotDeclared; + private String originalDeclarationEasting, originalDeclarationNorthing; + + +} diff --git a/src/main/java/dev/coph/flightscore/backend/track/MarkerDrop.java b/src/main/java/dev/coph/flightscore/backend/track/MarkerDrop.java new file mode 100644 index 0000000..fad4335 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/track/MarkerDrop.java @@ -0,0 +1,15 @@ +package dev.coph.flightscore.backend.track; + +import dev.coph.flightscore.backend.coordinate.Coordinate; +import lombok.Getter; +import lombok.experimental.Accessors; + +import java.time.Instant; + +@Getter +@Accessors(fluent = true) +public class MarkerDrop { + private int number; + private Coordinate location; + private Instant timestamp; +} diff --git a/src/main/java/dev/coph/flightscore/backend/track/Track.java b/src/main/java/dev/coph/flightscore/backend/track/Track.java new file mode 100644 index 0000000..39dbb92 --- /dev/null +++ b/src/main/java/dev/coph/flightscore/backend/track/Track.java @@ -0,0 +1,23 @@ +package dev.coph.flightscore.backend.track; + +import dev.coph.flightscore.backend.coordinate.Coordinate; +import dev.coph.flightscore.backend.pilot.Pilot; +import lombok.Getter; +import lombok.experimental.Accessors; + +import java.io.File; +import java.util.List; + +@Getter +@Accessors(fluent = true) +public class Track { + + private Pilot pilot; + private List trackPoints; + + private List declarations; + private List markerDrops; + private File trackFile; + + +} diff --git a/src/main/java/dev/coph/flightscore/backend/user/User.java b/src/main/java/dev/coph/flightscore/backend/user/User.java index 2066535..72a347d 100644 --- a/src/main/java/dev/coph/flightscore/backend/user/User.java +++ b/src/main/java/dev/coph/flightscore/backend/user/User.java @@ -17,8 +17,8 @@ public class User { private final String email; private final String phoneNumber; private final Locale country; - private Role role; private final boolean blocked; + private Role role; public User(ULID id, String firstname, String lastname, String email, String phoneNumber, Locale country, boolean blocked) { this.id = id; diff --git a/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java b/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java index a2e18d1..cb4b064 100644 --- a/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java +++ b/src/main/java/dev/coph/flightscore/backend/user/permission/Permission.java @@ -4,14 +4,7 @@ import dev.coph.simpleutilities.ulid.ULID; import lombok.Getter; import lombok.experimental.Accessors; -@Getter @Accessors(fluent = true) -public class Permission { - private final ULID id; - private final String name; - public Permission(ULID id, String name) { - this.id = id; - this.name = name; - } +public record Permission(ULID id, String name) { } diff --git a/src/main/java/dev/coph/flightscore/backend/user/role/Role.java b/src/main/java/dev/coph/flightscore/backend/user/role/Role.java index b3a8e5a..18abf3f 100644 --- a/src/main/java/dev/coph/flightscore/backend/user/role/Role.java +++ b/src/main/java/dev/coph/flightscore/backend/user/role/Role.java @@ -15,6 +15,7 @@ public class Role { private final String name; private final boolean defaultRole; private final HashSet permissions = new HashSet<>(); + public Role(ULID id, String name, boolean defaultRole) { this.id = id; this.name = name;