feat: Wetter-Widget auf der Bienenstand-Detailseite

Neue WeatherCard auf /apiaries/[id]: Trachtprognose-Badge mit
Begruendung, 7-Tage-Vorhersagestreifen (Temperatur + Niederschlag).
Zeigt einen Hinweis statt eines Fehlers, wenn fuer den Bienenstand
noch keine Koordinaten hinterlegt sind.

TASKS.md: Wetterintegration + Trachtprognosen jetzt vollstaendig
(Backend aus vorherigem Commit + Frontend hier) abgehakt.

Verifiziert: tsc, lint, build, alle Unit-Tests (14/14) gruen. Live-
Browser-Check war blockiert durch dieselbe wiederkehrende WSL/
Postgres-Portweiterleitungs-Unzuverlaessigkeit wie zuvor in der
Session - die Funktionalitaet ist stattdessen durch die Backend-e2e-
Suite abgedeckt, die echten Postgres UND die echte Open-Meteo-API
aufruft (163/163 gruen).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Sonnet 5 committed 2026-08-26 09:47:44 +02:00
1 parent ce9cea1b94
commit 0518a5740f
5 files changed
+165 -2

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
import { apiFetch } from "@/lib/auth/api-client";
import { ApiaryWeather, Trachtprognose } from "./types";
export function fetchApiaryWeather(apiaryId: string): Promise<ApiaryWeather> {
return apiFetch<ApiaryWeather>(`/apiaries/${apiaryId}/weather`);
}
export function fetchTrachtprognose(apiaryId: string): Promise<Trachtprognose> {
return apiFetch<Trachtprognose>(`/apiaries/${apiaryId}/trachtprognose`);
}
+19
View File
@@ -0,0 +1,19 @@
export interface DailyWeather {
date: string;
tempMaxC: number | null;
tempMinC: number | null;
precipitationMm: number | null;
}
export interface ApiaryWeather {
daily: DailyWeather[];
}
export type TrachtprognoseRating = "GUT" | "MAESSIG" | "SCHWACH" | "KEINE_TRACHT";
export interface Trachtprognose {
rating: TrachtprognoseRating;
season: string;
reasoning: string[];
historicalAverageYieldKg: number | null;
}