"""Base entity for weatherkit."""

from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
from homeassistant.helpers.entity import Entity

from .const import DOMAIN, MANUFACTURER
from .coordinator import WeatherKitDataUpdateCoordinator


class WeatherKitEntity(Entity):
    """Base entity for all WeatherKit platforms."""

    _attr_has_entity_name = True

    def __init__(
        self, coordinator: WeatherKitDataUpdateCoordinator, unique_id_suffix: str | None
    ) -> None:
        """Initialize the entity with device info and unique ID."""
        config_data = coordinator.config_entry.data

        config_entry_unique_id = (
            f"{config_data[CONF_LATITUDE]}-{config_data[CONF_LONGITUDE]}"
        )
        self._attr_unique_id = config_entry_unique_id
        if unique_id_suffix is not None:
            self._attr_unique_id += f"_{unique_id_suffix}"

        self._attr_device_info = DeviceInfo(
            entry_type=DeviceEntryType.SERVICE,
            identifiers={(DOMAIN, config_entry_unique_id)},
            manufacturer=MANUFACTURER,
        )