96 lines
2.1 KiB
TypeScript
96 lines
2.1 KiB
TypeScript
import { JobStatus } from '@app/shared/global';
|
|
|
|
export interface PilotKpiResponse {
|
|
assignedJobs: number;
|
|
assignedHectares: number;
|
|
sprayedToday: number;
|
|
flightHoursToday: number;
|
|
operations: PilotOperationsResponse;
|
|
historical: {
|
|
jobs: PilotHistoricalMetric;
|
|
hectares: PilotHistoricalMetric;
|
|
flightHours: PilotHistoricalMetric;
|
|
};
|
|
}
|
|
|
|
export interface PilotHistoricalMetric {
|
|
year: number;
|
|
month: number;
|
|
week: number;
|
|
day: number;
|
|
}
|
|
|
|
|
|
export interface PilotSummaryResponse {
|
|
today: PilotSummaryMetrics;
|
|
yesterday: PilotSummaryMetrics;
|
|
deltas: PilotSummaryDeltas;
|
|
}
|
|
|
|
export interface PilotSummaryMetrics {
|
|
hectares: number;
|
|
flightHours: number;
|
|
haPerHour: number;
|
|
avgSpeedKmh: number;
|
|
sprayVolumeLiters: number;
|
|
}
|
|
|
|
|
|
export interface PilotSummaryDeltas {
|
|
hectaresPct: number;
|
|
flightHoursPct: number;
|
|
haPerHourPct: number;
|
|
avgSpeedPct: number;
|
|
sprayVolumePct: number;
|
|
}
|
|
|
|
export interface PilotOperationsResponse {
|
|
distanceKm: number;
|
|
sprayVolumeLiters: number;
|
|
}
|
|
|
|
export interface PilotActiveJobsResponse {
|
|
jobs: PilotActiveJob[];
|
|
}
|
|
|
|
export interface PilotActiveJob {
|
|
jobId: number;
|
|
name: string;
|
|
clientName: string;
|
|
aircraftReg: string;
|
|
status: JobStatus;
|
|
displayStatus: string;
|
|
haTotal: number;
|
|
haSprayed: number;
|
|
progressPct: number;
|
|
volumeAppliedLiters: number;
|
|
}
|
|
|
|
/** Trend chart response for the default week view or a user-selected date range. */
|
|
export interface PilotTrendResponse {
|
|
labels: string[];
|
|
hoursFlown: number[];
|
|
hectaresPerDay: number[];
|
|
}
|
|
|
|
/** Performance response aggregated from the pilot's recent application files. */
|
|
export interface PilotPerformanceResponse {
|
|
avgXtErrorMeters: number;
|
|
xtThreshold: PilotXtThreshold;
|
|
avgSprayAltitudeMeters: number | null;
|
|
altitudeSource: 'sprayHeight' | 'radarAlt' | 'gpsAlt' | 'none';
|
|
altThreshold: PilotAltitudeThreshold;
|
|
sampleSize: number;
|
|
hasAltitudeData: boolean;
|
|
}
|
|
|
|
export interface PilotXtThreshold {
|
|
good: number;
|
|
monitor: number;
|
|
}
|
|
|
|
export interface PilotAltitudeThreshold {
|
|
target: number;
|
|
goodDelta: number;
|
|
monitorDelta: number;
|
|
} |