Files
dashboard/sync/src/types.ts
Matthias Hochmeister b7b4fe2fc9 update
2026-03-13 21:01:54 +01:00

58 lines
1.8 KiB
TypeScript

export interface FdiskMember {
standesbuchNr: string;
dienstgrad: string;
vorname: string;
zuname: string;
geburtsdatum: string | null;
svnr: string | null;
eintrittsdatum: string | null;
abmeldedatum: string | null;
/** 'aktiv' if no Abmeldedatum, 'ausgetreten' otherwise */
status: 'aktiv' | 'ausgetreten';
/** URL or identifier to navigate to the member detail page */
detailUrl: string | null;
/** Additional profile fields scraped from the detail form */
geburtsort: string | null;
geschlecht: string | null;
beruf: string | null;
wohnort: string | null;
plz: string | null;
}
export interface FdiskAusbildung {
standesbuchNr: string;
kursname: string;
kursDatum: string | null;
ablaufdatum: string | null;
ort: string | null;
bemerkung: string | null;
/** Unique key built from standesbuchNr + kursname + kursDatum for deduplication */
syncKey: string;
}
export interface FdiskBefoerderung {
standesbuchNr: string;
datum: string | null; // ISO date
dienstgrad: string; // abbreviation from FDISK
syncKey: string; // `${standesbuchNr}::${dienstgrad}::${datum}`
}
export interface FdiskUntersuchung {
standesbuchNr: string;
datum: string | null; // ISO date
anmerkungen: string | null;
art: string; // Untersuchungsart (category)
ergebnis: string | null; // Tauglichkeitsstufe (result)
syncKey: string; // `${standesbuchNr}::${art}::${datum}`
}
export interface FdiskFahrgenehmigung {
standesbuchNr: string;
ausstellungsdatum: string | null; // ISO date
gueltigBis: string | null; // ISO date
behoerde: string | null;
nummer: string | null;
klasse: string; // Fahrgenehmigungsklasse display text
syncKey: string; // `${standesbuchNr}::${klasse}::${ausstellungsdatum}`
}