refine vehicle freatures
This commit is contained in:
136
frontend/src/types/equipment.types.ts
Normal file
136
frontend/src/types/equipment.types.ts
Normal file
@@ -0,0 +1,136 @@
|
||||
// =============================================================================
|
||||
// Equipment Management — Frontend Type Definitions
|
||||
// =============================================================================
|
||||
|
||||
export enum AusruestungStatus {
|
||||
Einsatzbereit = 'einsatzbereit',
|
||||
Beschaedigt = 'beschaedigt',
|
||||
InWartung = 'in_wartung',
|
||||
AusserDienst = 'ausser_dienst',
|
||||
}
|
||||
|
||||
export const AusruestungStatusLabel: Record<AusruestungStatus, string> = {
|
||||
[AusruestungStatus.Einsatzbereit]: 'Einsatzbereit',
|
||||
[AusruestungStatus.Beschaedigt]: 'Beschädigt',
|
||||
[AusruestungStatus.InWartung]: 'In Wartung',
|
||||
[AusruestungStatus.AusserDienst]: 'Außer Dienst',
|
||||
};
|
||||
|
||||
export type AusruestungWartungslogArt = 'Prüfung' | 'Reparatur' | 'Sonstiges';
|
||||
|
||||
// ── Lookup Entity ────────────────────────────────────────────────────────────
|
||||
|
||||
export interface AusruestungKategorie {
|
||||
id: string;
|
||||
name: string;
|
||||
kurzname: string;
|
||||
sortierung: number;
|
||||
}
|
||||
|
||||
// ── API Response Shapes ──────────────────────────────────────────────────────
|
||||
|
||||
export interface AusruestungListItem {
|
||||
id: string;
|
||||
bezeichnung: string;
|
||||
kategorie_id: string;
|
||||
kategorie_name: string;
|
||||
kategorie_kurzname: string;
|
||||
seriennummer: string | null;
|
||||
inventarnummer: string | null;
|
||||
hersteller: string | null;
|
||||
baujahr: number | null;
|
||||
status: AusruestungStatus;
|
||||
status_bemerkung: string | null;
|
||||
ist_wichtig: boolean;
|
||||
fahrzeug_id: string | null;
|
||||
fahrzeug_bezeichnung: string | null;
|
||||
fahrzeug_kurzname: string | null;
|
||||
standort: string;
|
||||
naechste_pruefung_am: string | null;
|
||||
pruefung_tage_bis_faelligkeit: number | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface AusruestungDetail extends AusruestungListItem {
|
||||
pruef_intervall_monate: number | null;
|
||||
letzte_pruefung_am: string | null;
|
||||
bemerkung: string | null;
|
||||
wartungslog: AusruestungWartungslog[];
|
||||
}
|
||||
|
||||
export interface AusruestungWartungslog {
|
||||
id: string;
|
||||
ausruestung_id: string;
|
||||
datum: string;
|
||||
art: AusruestungWartungslogArt;
|
||||
beschreibung: string;
|
||||
ergebnis: string | null;
|
||||
kosten: number | null;
|
||||
pruefende_stelle: string | null;
|
||||
dokument_url: string | null;
|
||||
erfasst_von: string | null;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// ── Dashboard KPI ────────────────────────────────────────────────────────────
|
||||
|
||||
export interface EquipmentStats {
|
||||
total: number;
|
||||
einsatzbereit: number;
|
||||
beschaedigt: number;
|
||||
inWartung: number;
|
||||
ausserDienst: number;
|
||||
inspectionsDue: number;
|
||||
inspectionsOverdue: number;
|
||||
wichtigNichtBereit: number;
|
||||
}
|
||||
|
||||
// ── Vehicle Equipment Warning ────────────────────────────────────────────────
|
||||
|
||||
export interface VehicleEquipmentWarning {
|
||||
fahrzeug_id: string;
|
||||
ausruestung_id: string;
|
||||
bezeichnung: string;
|
||||
status: AusruestungStatus;
|
||||
kategorie_name: string;
|
||||
}
|
||||
|
||||
// ── Request Payload Types ────────────────────────────────────────────────────
|
||||
|
||||
export interface CreateAusruestungPayload {
|
||||
bezeichnung: string;
|
||||
kategorie_id: string;
|
||||
seriennummer?: string;
|
||||
inventarnummer?: string;
|
||||
hersteller?: string;
|
||||
baujahr?: number;
|
||||
status?: AusruestungStatus;
|
||||
status_bemerkung?: string;
|
||||
ist_wichtig?: boolean;
|
||||
fahrzeug_id?: string;
|
||||
standort?: string;
|
||||
pruef_intervall_monate?: number;
|
||||
letzte_pruefung_am?: string;
|
||||
naechste_pruefung_am?: string;
|
||||
bemerkung?: string;
|
||||
}
|
||||
|
||||
export type UpdateAusruestungPayload = {
|
||||
[K in keyof CreateAusruestungPayload]?: CreateAusruestungPayload[K] | null;
|
||||
};
|
||||
|
||||
export interface UpdateAusruestungStatusPayload {
|
||||
status: AusruestungStatus;
|
||||
bemerkung?: string;
|
||||
}
|
||||
|
||||
export interface CreateAusruestungWartungslogPayload {
|
||||
datum: string;
|
||||
art: AusruestungWartungslogArt;
|
||||
beschreibung: string;
|
||||
ergebnis?: string;
|
||||
kosten?: number;
|
||||
pruefende_stelle?: string;
|
||||
dokument_url?: string;
|
||||
}
|
||||
Reference in New Issue
Block a user