generated from knso/webklar-preview-template
1 version
This commit is contained in:
1 parent
f1165b5404
commit
88c49e1b54
39 files changed
+9328
-52
No files matched your search
+116
@@ -0,0 +1,116 @@
|
||||
/**
|
||||
* Zentrale Typdefinitionen für BehördenKlar.
|
||||
* Die Feldnamen entsprechen exakt dem JSON-Schema, das die Claude API
|
||||
* per Structured Output garantiert zurückliefert (siehe services/analyse.ts).
|
||||
*/
|
||||
|
||||
/** Ampel-Stufen für die Dringlichkeit eines Briefs. */
|
||||
export type Dringlichkeit = 'rot' | 'gelb' | 'gruen';
|
||||
|
||||
/** Vorlagen-Typen für den Antwort-Generator. */
|
||||
export type AntwortTyp =
|
||||
| 'terminbestaetigung'
|
||||
| 'terminverschiebung'
|
||||
| 'widerspruch'
|
||||
| 'unterlagen_nachreichen'
|
||||
| 'rueckfrage';
|
||||
|
||||
export const ANTWORT_TYP_LABEL: Record<AntwortTyp, string> = {
|
||||
terminbestaetigung: 'Termin bestätigen',
|
||||
terminverschiebung: 'Termin verschieben',
|
||||
widerspruch: 'Widerspruch einlegen',
|
||||
unterlagen_nachreichen: 'Unterlagen nachreichen',
|
||||
rueckfrage: 'Rückfrage stellen',
|
||||
};
|
||||
|
||||
/** Ein im Brief gefundener Fachbegriff mit einfacher Erklärung. */
|
||||
export interface Fachbegriff {
|
||||
begriff: string;
|
||||
erklaerung: string;
|
||||
}
|
||||
|
||||
/** Eine erkannte Frist ("Antwort bis TT.MM.JJJJ"). Datum ist ISO (JJJJ-MM-TT). */
|
||||
export interface Frist {
|
||||
datum: string;
|
||||
aktion: string;
|
||||
}
|
||||
|
||||
/** Ein erkannter Termin (z. B. Vorsprache beim Amt). Datum ist ISO. */
|
||||
export interface Termin {
|
||||
datum: string;
|
||||
uhrzeit: string | null;
|
||||
ort: string | null;
|
||||
}
|
||||
|
||||
/** Das strukturierte Analyse-Ergebnis eines gescannten Briefs. */
|
||||
export interface BriefAnalyse {
|
||||
brieftyp: string;
|
||||
absender: string;
|
||||
/** "Was will das Amt von mir?" — 2-3 Sätze, A2-Niveau. */
|
||||
kernaussage: string;
|
||||
/** Ausführlichere Erklärung in einfacher Sprache (A2/B1). */
|
||||
erklaerung_einfach: string;
|
||||
fachbegriffe: Fachbegriff[];
|
||||
frist: Frist | null;
|
||||
termin: Termin | null;
|
||||
/** To-do-Liste: was der Nutzer tun / mitbringen muss. */
|
||||
checkliste: string[];
|
||||
antwort_noetig: boolean;
|
||||
antwort_optionen: AntwortTyp[];
|
||||
}
|
||||
|
||||
/** Übersetzung der wichtigsten Analyse-Teile in eine Zielsprache. */
|
||||
export interface Uebersetzung {
|
||||
kernaussage: string;
|
||||
erklaerung_einfach: string;
|
||||
checkliste: string[];
|
||||
fachbegriffe: Fachbegriff[];
|
||||
}
|
||||
|
||||
/** Ein gespeicherter Brief im lokalen Archiv. */
|
||||
export interface BriefEintrag {
|
||||
id: string;
|
||||
/** ISO-Zeitstempel der Erstellung. */
|
||||
erstelltAm: string;
|
||||
analyse: BriefAnalyse;
|
||||
/** Cache: Sprachcode -> fertige Übersetzung (spart API-Kosten). */
|
||||
uebersetzungen: Record<string, Uebersetzung>;
|
||||
antwortEntwurf?: {
|
||||
typ: AntwortTyp;
|
||||
betreff: string;
|
||||
text: string;
|
||||
};
|
||||
}
|
||||
|
||||
/** Eine unterstützte Zielsprache für die Übersetzung. */
|
||||
export interface Sprache {
|
||||
/** ISO-Code, wird an die KI übergeben. */
|
||||
code: string;
|
||||
/** Deutscher Name (für die UI). */
|
||||
name: string;
|
||||
/** Name in der Sprache selbst (damit Nutzer ihre Sprache erkennen). */
|
||||
eigenname: string;
|
||||
}
|
||||
|
||||
export const SPRACHEN: Sprache[] = [
|
||||
{ code: 'tr', name: 'Türkisch', eigenname: 'Türkçe' },
|
||||
{ code: 'ar', name: 'Arabisch', eigenname: 'العربية' },
|
||||
{ code: 'en', name: 'Englisch', eigenname: 'English' },
|
||||
{ code: 'ru', name: 'Russisch', eigenname: 'Русский' },
|
||||
{ code: 'uk', name: 'Ukrainisch', eigenname: 'Українська' },
|
||||
{ code: 'fr', name: 'Französisch', eigenname: 'Français' },
|
||||
{ code: 'fa', name: 'Farsi', eigenname: 'فارسی' },
|
||||
{ code: 'ro', name: 'Rumänisch', eigenname: 'Română' },
|
||||
{ code: 'pl', name: 'Polnisch', eigenname: 'Polski' },
|
||||
];
|
||||
|
||||
/** Navigation: Parameter aller Screens. */
|
||||
export type RootStackParamList = {
|
||||
Home: undefined;
|
||||
Consent: undefined;
|
||||
Scan: undefined;
|
||||
Analyse: { briefId: string };
|
||||
Antwort: { briefId: string };
|
||||
Glossar: undefined;
|
||||
Einstellungen: undefined;
|
||||
};
|
||||
Reference in new issue
Block a user