- Eingabe: alle 5 Felder (Führung, Datum, Start, Ende, Besucher) in einer Zeile - Eingabe: Datum einmalig, Start- und Endzeit getrennt - Führungsarten: Kürzel werden nur in DB gespeichert, Anzeige als Klartext - Liste: Datum und Zeit getrennt in eigenen Spalten - Hintergrundfarbe #EEF4FF auf Login- und Passwort-Seite übertragen - Alle Inputfelder gleich hoch (text-sm durchgehend) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
62 lines
1.2 KiB
TypeScript
62 lines
1.2 KiB
TypeScript
export type Kuppel = 'West' | 'Ost' | 'Süd' | 'Pluto';
|
|
export type ArtFuehrung = 'RF' | 'SF' | 'PrF' | 'BEOS' | 'SonF' | 'TD' | 'Beob' | 'ToT' | 'Sonst';
|
|
|
|
export const KUPPELN: Kuppel[] = ['West', 'Ost', 'Süd', 'Pluto'];
|
|
|
|
export const ARTEN_MAP: Record<ArtFuehrung, string> = {
|
|
RF: 'regulär',
|
|
SF: 'sonder',
|
|
PrF: 'privat',
|
|
BEOS: '',
|
|
SonF: 'sonnen',
|
|
TD: '',
|
|
Beob: 'Beobachtung',
|
|
ToT: '',
|
|
Sonst: 'Sonstiges',
|
|
};
|
|
|
|
export const ARTEN = Object.keys(ARTEN_MAP) as ArtFuehrung[];
|
|
|
|
export function artLabel(a: ArtFuehrung): string {
|
|
return ARTEN_MAP[a] || a;
|
|
}
|
|
|
|
export interface BeoOption {
|
|
ID: number;
|
|
Kuerzel: string;
|
|
Name: string;
|
|
}
|
|
|
|
export interface ObjektOption {
|
|
ID: number;
|
|
Name: string;
|
|
}
|
|
|
|
export interface SelectedObjekt {
|
|
ID: number | null;
|
|
Name: string;
|
|
}
|
|
|
|
export interface Wetter {
|
|
temp: number;
|
|
feuchte: number;
|
|
druck: number;
|
|
}
|
|
|
|
export interface LogbuchEintrag {
|
|
ID: number;
|
|
Kuppel: Kuppel;
|
|
ArtFuehrung: ArtFuehrung;
|
|
Beginn: string;
|
|
Ende: string;
|
|
Besucher: number;
|
|
Bemerkungen: string | null;
|
|
WetterTemp: number | null;
|
|
WetterFeuchte: number | null;
|
|
WetterDruck: number | null;
|
|
created_by: number | null;
|
|
created_at: string;
|
|
BEOs: string;
|
|
Objekte: string;
|
|
}
|