Introduce Altitude record, enhance altitude handling, and expand models
- Added `Altitude` record for unified altitude representation with conversions between meters and feet. - Updated `Coordinate` and `TrackCoordinate` to use `Altitude` instead of raw altitude values. - Introduced `FlightStatus` enum for distinguishing flight stages. - Enhanced `Task` with a `scoringPeriodeEnd` field and added altitude-related updates to `Competition`.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package dev.coph.flightscore.backend.competition;
|
||||
|
||||
import dev.coph.flightscore.backend.competition.contact.CompetitionContact;
|
||||
import dev.coph.flightscore.backend.coordinate.Altitude;
|
||||
import dev.coph.flightscore.backend.coordinate.Coordinate;
|
||||
import dev.coph.simpleutilities.ulid.ULID;
|
||||
import lombok.Getter;
|
||||
@@ -26,6 +27,7 @@ public class Competition {
|
||||
private String location;
|
||||
private String website;
|
||||
private AltitudeSource altitudeSource;
|
||||
private Altitude seperationAltitude;
|
||||
private HashMap<String, Coordinate> commonLaunchPoints;
|
||||
private HashSet<CompetitionContact> contacts;
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package dev.coph.flightscore.backend.coordinate;
|
||||
|
||||
public record Altitude(double meters) {
|
||||
public static final double FEET_PER_METER = 3.2808;
|
||||
public static final double METERS_PER_FOOT = 0.3048;
|
||||
|
||||
public static Altitude fromFeet(double feet) {
|
||||
return new Altitude(feet * METERS_PER_FOOT);
|
||||
}
|
||||
|
||||
public static Altitude fromMeters(double meters) {
|
||||
return new Altitude(meters);
|
||||
}
|
||||
|
||||
public double feet() {
|
||||
return meters * FEET_PER_METER;
|
||||
}
|
||||
}
|
||||
@@ -9,20 +9,20 @@ public class Coordinate {
|
||||
|
||||
private final double latitude;
|
||||
private final double longitude;
|
||||
private final double pressureAltitude;
|
||||
private final double gpsAltitude;
|
||||
private final Altitude barometricAltitude;
|
||||
private final Altitude gpsAltitude;
|
||||
|
||||
public Coordinate(double latitude, double longitude, double pressureAltitude, double gpsAltitude) {
|
||||
public Coordinate(double latitude, double longitude, Altitude barometricAltitude, Altitude gpsAltitude) {
|
||||
this.latitude = latitude;
|
||||
this.longitude = longitude;
|
||||
this.pressureAltitude = pressureAltitude;
|
||||
this.barometricAltitude = barometricAltitude;
|
||||
this.gpsAltitude = gpsAltitude;
|
||||
}
|
||||
|
||||
public Coordinate(double latitude, double longitude, double altitude) {
|
||||
public Coordinate(double latitude, double longitude, Altitude altitude) {
|
||||
this.latitude = latitude;
|
||||
this.longitude = longitude;
|
||||
this.pressureAltitude = altitude;
|
||||
this.barometricAltitude = altitude;
|
||||
this.gpsAltitude = altitude;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ public class TrackCoordinate extends Coordinate {
|
||||
private final String additionalDigits;
|
||||
private final double variometer;
|
||||
|
||||
public TrackCoordinate(Instant time, double latitude, double longitude, PositionValid positionValid, double pressureAltitude, double gpsAltitude, int gpsAccuracy, int satelliteCount, String additionalDigits, double variometer) {
|
||||
super(latitude, longitude, pressureAltitude, gpsAltitude);
|
||||
public TrackCoordinate(Instant time, double latitude, double longitude, PositionValid positionValid, Altitude barometricAltitude, Altitude gpsAltitude, int gpsAccuracy, int satelliteCount, String additionalDigits, double variometer) {
|
||||
super(latitude, longitude, barometricAltitude, gpsAltitude);
|
||||
this.time = time;
|
||||
this.positionValid = positionValid;
|
||||
this.gpsAccuracy = gpsAccuracy;
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.time.LocalDate;
|
||||
public class Flight {
|
||||
|
||||
private int flightNumber;
|
||||
private FlightStatus status;
|
||||
private FlightType type;
|
||||
private LocalDate date;
|
||||
private Daytime daytime;
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package dev.coph.flightscore.backend.flight;
|
||||
|
||||
public enum FlightStatus {
|
||||
|
||||
DRAFT,
|
||||
LIVE,
|
||||
COMPLETED,
|
||||
CANCELLED
|
||||
|
||||
}
|
||||
@@ -3,9 +3,11 @@ package dev.coph.flightscore.backend.task;
|
||||
import lombok.Getter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
@Getter
|
||||
@Accessors(fluent = true)
|
||||
public class Task {
|
||||
private int taskNumber;
|
||||
|
||||
private Instant scoringPeriodeEnd;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user