"""Handles icons for different entity types."""

ICON_AUDIO = "mdi:ear-hearing"
ICON_AUDIO_OFF = "mdi:ear-hearing-off"
ICON_PTZ_AUTOTRACKER = "mdi:cctv"
ICON_BICYCLE = "mdi:bicycle"
ICON_CAR = "mdi:car"
ICON_CAT = "mdi:cat"
ICON_CONTRAST = "mdi:contrast-circle"
ICON_CORAL = "mdi:scoreboard-outline"
ICON_COW = "mdi:cow"
ICON_DOG = "mdi:dog-side"
ICON_FILM_MULTIPLE = "mdi:filmstrip-box-multiple"
ICON_HORSE = "mdi:horse"
ICON_IMAGE_MULTIPLE = "mdi:image-multiple"
ICON_MOTION_SENSOR = "mdi:motion-sensor"
ICON_MOTORCYCLE = "mdi:motorbike"
ICON_OTHER = "mdi:shield-alert"
ICON_PERSON = "mdi:human"
ICON_SERVER = "mdi:server"
ICON_SPEEDOMETER = "mdi:speedometer"
ICON_WAVEFORM = "mdi:waveform"

ICON_DEFAULT_ON = "mdi:home"

ICON_CAR_OFF = "mdi:car-off"
ICON_DEFAULT_OFF = "mdi:home-outline"
ICON_DOG_OFF = "mdi:dog-side-off"


def get_dynamic_icon_from_type(obj_type: str, is_on: bool) -> str:
    """Get icon for a specific object type and current state."""

    if obj_type == "car":
        return ICON_CAR if is_on else ICON_CAR_OFF
    if obj_type == "dog":
        return ICON_DOG if is_on else ICON_DOG_OFF
    if obj_type == "sound":
        return ICON_AUDIO if is_on else ICON_AUDIO_OFF

    return ICON_DEFAULT_ON if is_on else ICON_DEFAULT_OFF


def get_icon_from_switch(switch_type: str) -> str:
    """Get icon for a specific switch type."""
    if switch_type == "snapshots":
        return ICON_IMAGE_MULTIPLE
    if switch_type == "recordings":
        return ICON_FILM_MULTIPLE
    if switch_type == "improve_contrast":
        return ICON_CONTRAST
    if switch_type == "audio":
        return ICON_AUDIO
    if switch_type == "ptz_autotracker":
        return ICON_PTZ_AUTOTRACKER

    return ICON_MOTION_SENSOR


def get_icon_from_type(obj_type: str) -> str:
    """Get icon for a specific object type."""

    if obj_type == "person":
        return ICON_PERSON
    if obj_type == "car":
        return ICON_CAR
    if obj_type == "dog":
        return ICON_DOG
    if obj_type == "cat":
        return ICON_CAT
    if obj_type == "motorcycle":
        return ICON_MOTORCYCLE
    if obj_type == "bicycle":
        return ICON_BICYCLE
    if obj_type == "cow":
        return ICON_COW
    if obj_type == "horse":
        return ICON_HORSE

    return ICON_OTHER
