import { Injectable } from '@angular/core'; export type WeatherPoint = { date_time: string; temperature?: number; humidity?: number; pressure?: number; wind_speed?: number; wind_direction?: number; rainfall?: number; rain_total?: number; light?: number; uv?: number; }; export type ForecastPoint = WeatherPoint & { provider?: string; issued_at?: string; precip_prob?: number; lead_hours?: number; }; @Injectable({ providedIn: 'root' }) export class ApiService { async getStatus(): Promise<{ online_devices: number; server_time: string } | null> { try { const r = await fetch('/api/system/status'); return await r.json(); } catch { return null; } } async getStations(): Promise { try { const r = await fetch('/api/stations'); return await r.json(); } catch { return []; } } async getHistory(decimalId: string, from: string, to: string, interval: string): Promise { const params = new URLSearchParams({ decimal_id: decimalId, start_time: from, end_time: to, interval }); const r = await fetch(`/api/data?${params.toString()}`); if (!r.ok) return []; return await r.json(); } async getForecast(stationId: string, from: string, to: string, provider = '', versions = 1): Promise { const params = new URLSearchParams({ station_id: stationId, from, to, provider, versions: String(versions) }); const r = await fetch(`/api/forecast?${params.toString()}`); if (!r.ok) return []; return await r.json(); } }