export interface FdiskMember {
  standesbuchNr: string;
  dienstgrad: string;
  vorname: string;
  zuname: string;
  geburtsdatum: string | null;
  svnr: string | null;
  eintrittsdatum: string | null;
  abmeldedatum: string | null;
  /** Status mapped from FDISK column: Aktiv/Kind/Jugend/Reserve */
  status: 'aktiv' | 'kind' | 'jugend' | 'reserve';
  /** 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;
  kursnummer: string | null;
  kurzbezeichnung: string | null;
  erfolgscode: string | null;
  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}`
}
