"""Entity classes for the AEMET OpenData integration."""
from __future__ import annotations

from typing import Any

from aemet_opendata.helpers import dict_nested_value

from homeassistant.components.weather import Forecast
from homeassistant.helpers.update_coordinator import CoordinatorEntity

from .weather_update_coordinator import WeatherUpdateCoordinator


class AemetEntity(CoordinatorEntity[WeatherUpdateCoordinator]):
    """Define an AEMET entity."""

    def get_aemet_forecast(self, forecast_mode: str) -> list[Forecast]:
        """Return AEMET entity forecast by mode."""
        return self.coordinator.data["forecast"][forecast_mode]

    def get_aemet_value(self, keys: list[str]) -> Any:
        """Return AEMET entity value by keys."""
        return dict_nested_value(self.coordinator.data["lib"], keys)