You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
1.9 KiB

export interface User {
id: number;
email: string;
praepedeutikum_done: boolean;
is_admin: boolean;
}
export interface Entry {
id: number;
date: string;
hours: number;
minutes: number;
praktikums_typ: string;
entry_art: string;
distance_km: number;
beschreibung: string | null;
kosten: number | null;
start_time: string | null;
end_time: string | null;
lunch_break_minutes: number;
zaehlt_als_fortbildung: boolean;
kilometer_pauschale: number;
}
export type EntryInput = Omit<Entry, "id" | "kilometer_pauschale">;
export interface Progress {
typ: string;
art: string;
spent_minutes: number;
target_minutes: number;
remaining_minutes: number;
percent: number;
weekly_target: number;
actual_weekly: number | null;
estimated_end: string | null;
}
export interface Dashboard {
total_minutes: number;
target_minutes: number;
remaining_minutes: number;
completed_percent: number;
total_distance_km: number;
costs_by_year: {
year: number;
kilometer: number;
fortbildung: number;
selbsterfahrung: number;
supervision: number;
semester: number;
total: number;
}[];
last_entry: Entry | null;
running_entry: Entry | null;
enabled_praktikums_typen: string[];
mediation_presence_days: number;
mediation_presence_days_required: number;
progress: Progress[];
}
export interface Settings {
email: string;
total_required_hours: number;
weekly_target_hours: number;
praepedeutikum_done: boolean;
required_hours_matrix: Record<string, Record<string, number>>;
weekly_target_matrix: Record<string, Record<string, number>>;
praktikums_typen: string[];
enabled_praktikums_typen: string[];
praktikums_typ_labels: Record<string, string>;
entry_arten: string[];
entry_arten_by_typ: Record<string, string[]>;
}
export interface MileageRate {
id: number;
year: number;
rate_per_km: number;
}