import requests



WMO_CODES = {
    0: "Klarer Himmel",
    1: "Hauptsächlich klar",
    2: "Teils bewölkt",
    3: "Bedeckt",
    45: "Nebel",
    48: "Ablagernder Rauhreifnebel",
    51: "Leichter Nieselregen",
    53: "Mäßiger Nieselregen",
    55: "Dichter Nieselregen",
    56: "Leichter gefrierender Nieselregen",
    57: "Dichter gefrierender Nieselregen",
    61: "Leichter Regen",
    63: "Mäßiger Regen",
    65: "Starker Regen",
    66: "Leichter gefrierender Regen",
    67: "Starker gefrierender Regen",
    71: "Leichter Schneefall",
    73: "Mäßiger Schneefall",
    75: "Starker Schneefall",
    77: "Schneegriesel",  # Dein Code für morgen!
    80: "Leichte Regenschauer",
    81: "Mäßige Regenschauer",
    82: "Starke Regenschauer",
    85: "Leichte Schneeschauer",
    86: "Starke Schneeschauer",
    95: "Gewitter",
    96: "Gewitter mit leichtem Hagel",
    99: "Gewitter mit starkem Hagel"
}

def get_braunschweig_wetter():
    # Koordinaten für Braunschweig
    url = "https://api.open-meteo.com/v1/forecast"
    params = {
        "latitude": 52.2659,
        "longitude": 10.5267,
        "daily": "temperature_2m_max,temperature_2m_min,weathercode",
        "timezone": "Europe/Berlin",
        "forecast_days": 3
    }

    try:
        response = requests.get(url, params=params)
        response.raise_for_status()
        data = response.json()
        daily = data['daily']
        ergebnis= []
        for i in range(len(daily['time'])):
            date = daily['time'][i]
            wechsel = date.split('-')
            jahr = wechsel[0]
            monat = wechsel[1]
            tag = wechsel[2]
            tagesdaten = {
            'Jahr' : jahr,
            'Monat' : monat,
            'Tag' : tag,
            'Max' : daily['temperature_2m_max'][i],
            'Min' : daily['temperature_2m_min'][i],
            # Ein einfacher Mapper für Wettercodes (WMO Standard)
            'code' : WMO_CODES.get(daily['weathercode'][i]),
            }
            ergebnis.append(tagesdaten)

    except Exception as e:
        return [f"Fehler bei der Abfrage: {e}"]

    return ergebnis
