add now features
This commit is contained in:
76
frontend/src/types/atemschutz.types.ts
Normal file
76
frontend/src/types/atemschutz.types.ts
Normal file
@@ -0,0 +1,76 @@
|
||||
// =============================================================================
|
||||
// Atemschutz (Breathing Apparatus) Carrier Management — Frontend Type Definitions
|
||||
// =============================================================================
|
||||
|
||||
export type UntersuchungErgebnis = 'tauglich' | 'bedingt_tauglich' | 'nicht_tauglich';
|
||||
|
||||
export const UntersuchungErgebnisLabel: Record<UntersuchungErgebnis, string> = {
|
||||
tauglich: 'Tauglich',
|
||||
bedingt_tauglich: 'Bedingt tauglich',
|
||||
nicht_tauglich: 'Nicht tauglich',
|
||||
};
|
||||
|
||||
// ── Core Entity ────────────────────────────────────────────────────────────
|
||||
|
||||
export interface AtemschutzTraeger {
|
||||
id: string;
|
||||
user_id: string;
|
||||
atemschutz_lehrgang: boolean;
|
||||
lehrgang_datum: string | null;
|
||||
untersuchung_datum: string | null;
|
||||
untersuchung_gueltig_bis: string | null;
|
||||
untersuchung_ergebnis: UntersuchungErgebnis | null;
|
||||
leistungstest_datum: string | null;
|
||||
leistungstest_gueltig_bis: string | null;
|
||||
leistungstest_bestanden: boolean | null;
|
||||
bemerkung: string | null;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
// ── List / Overview Shape (joined with user data) ──────────────────────────
|
||||
|
||||
export interface AtemschutzUebersicht extends AtemschutzTraeger {
|
||||
user_name: string | null;
|
||||
user_given_name: string | null;
|
||||
user_family_name: string | null;
|
||||
user_email: string;
|
||||
mitglied_status: string | null;
|
||||
dienstgrad: string | null;
|
||||
untersuchung_gueltig: boolean;
|
||||
untersuchung_tage_rest: number | null;
|
||||
leistungstest_gueltig: boolean;
|
||||
leistungstest_tage_rest: number | null;
|
||||
einsatzbereit: boolean;
|
||||
}
|
||||
|
||||
// ── Dashboard KPI ──────────────────────────────────────────────────────────
|
||||
|
||||
export interface AtemschutzStats {
|
||||
total: number;
|
||||
mitLehrgang: number;
|
||||
untersuchungGueltig: number;
|
||||
untersuchungAbgelaufen: number;
|
||||
untersuchungBaldFaellig: number;
|
||||
leistungstestGueltig: number;
|
||||
leistungstestAbgelaufen: number;
|
||||
leistungstestBaldFaellig: number;
|
||||
einsatzbereit: number;
|
||||
}
|
||||
|
||||
// ── Request Payload Types ──────────────────────────────────────────────────
|
||||
|
||||
export interface CreateAtemschutzPayload {
|
||||
user_id: string;
|
||||
atemschutz_lehrgang?: boolean;
|
||||
lehrgang_datum?: string;
|
||||
untersuchung_datum?: string;
|
||||
untersuchung_gueltig_bis?: string;
|
||||
untersuchung_ergebnis?: UntersuchungErgebnis;
|
||||
leistungstest_datum?: string;
|
||||
leistungstest_gueltig_bis?: string;
|
||||
leistungstest_bestanden?: boolean;
|
||||
bemerkung?: string;
|
||||
}
|
||||
|
||||
export type UpdateAtemschutzPayload = Omit<Partial<CreateAtemschutzPayload>, 'user_id'>;
|
||||
Reference in New Issue
Block a user