feat: vehicle/equipment type system, equipment checklist support, and checklist overview redesign

This commit is contained in:
Matthias Hochmeister
2026-03-28 17:27:01 +01:00
parent 692093cc85
commit 6b46e97eb6
25 changed files with 2230 additions and 494 deletions

View File

@@ -15,11 +15,24 @@ export interface ChecklistVorlageItem {
sort_order: number;
}
export interface AusruestungTyp {
id: number;
name: string;
beschreibung?: string;
icon?: string;
}
export interface ChecklistVorlage {
id: number;
name: string;
fahrzeug_typ_id?: number;
fahrzeug_typ?: FahrzeugTyp;
fahrzeug_id?: string;
fahrzeug_name?: string;
ausruestung_id?: string;
ausruestung_name?: string;
ausruestung_typ_id?: number;
ausruestung_typ?: string;
intervall?: 'weekly' | 'monthly' | 'yearly' | 'custom';
intervall_tage?: number;
beschreibung?: string;
@@ -52,8 +65,10 @@ export interface ChecklistAusfuehrungItem {
export interface ChecklistAusfuehrung {
id: string;
fahrzeug_id: string;
fahrzeug_id?: string;
fahrzeug_name?: string;
ausruestung_id?: string;
ausruestung_name?: string;
vorlage_id?: number;
vorlage_name?: string;
status: 'offen' | 'abgeschlossen' | 'unvollstaendig' | 'freigegeben';
@@ -69,8 +84,10 @@ export interface ChecklistAusfuehrung {
}
export interface ChecklistFaelligkeit {
fahrzeug_id: string;
fahrzeug_name: string;
fahrzeug_id?: string;
fahrzeug_name?: string;
ausruestung_id?: string;
ausruestung_name?: string;
vorlage_id: number;
vorlage_name: string;
naechste_faellig_am: string;
@@ -107,6 +124,9 @@ export interface ChecklistAusfuehrungFilter {
export interface CreateVorlagePayload {
name: string;
fahrzeug_typ_id?: number;
fahrzeug_id?: string;
ausruestung_typ_id?: number;
ausruestung_id?: string;
intervall?: 'weekly' | 'monthly' | 'yearly' | 'custom';
intervall_tage?: number;
beschreibung?: string;
@@ -116,6 +136,9 @@ export interface CreateVorlagePayload {
export interface UpdateVorlagePayload {
name?: string;
fahrzeug_typ_id?: number | null;
fahrzeug_id?: string | null;
ausruestung_typ_id?: number | null;
ausruestung_id?: string | null;
intervall?: 'weekly' | 'monthly' | 'yearly' | 'custom' | null;
intervall_tage?: number | null;
beschreibung?: string | null;
@@ -160,3 +183,21 @@ export interface ChecklistWidgetSummary {
overdue: ChecklistFaelligkeit[];
dueSoon: ChecklistFaelligkeit[];
}
export interface ChecklistOverviewChecklist {
vorlage_id: number;
vorlage_name: string;
next_due?: string;
}
export interface ChecklistOverviewItem {
id: string;
name: string;
kurzname?: string;
checklists: ChecklistOverviewChecklist[];
}
export interface ChecklistOverviewResponse {
vehicles: ChecklistOverviewItem[];
equipment: ChecklistOverviewItem[];
}

View File

@@ -28,6 +28,15 @@ export interface AusruestungKategorie {
motorisiert: boolean;
}
// ── Equipment Type (many-to-many) ───────────────────────────────────────────
export interface AusruestungTyp {
id: number;
name: string;
beschreibung?: string;
icon?: string;
}
// ── API Response Shapes ──────────────────────────────────────────────────────
export interface AusruestungListItem {
@@ -52,6 +61,7 @@ export interface AusruestungListItem {
pruefung_tage_bis_faelligkeit: number | null;
created_at: string;
updated_at: string;
typen?: AusruestungTyp[];
}
export interface AusruestungDetail extends AusruestungListItem {