# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import List, Optional

from pydantic import Field as FieldInfo

from ..._models import BaseModel

__all__ = ["V2RetrieveHeroFilterResponse", "AreaFilter", "AreaFilterButtons", "GenreFilter", "GenreFilterButtons"]


class AreaFilterButtons(BaseModel):
    id: Optional[int] = None
    """Numeric identifier for a resource"""

    api_type: Optional[str] = FieldInfo(alias="_type", default=None)

    area_ids: Optional[List[int]] = FieldInfo(alias="areaIds", default=None)
    """List of all area ids for this button"""

    title: Optional[str] = None
    """Display Name of filter button"""


class AreaFilter(BaseModel):
    api_type: str = FieldInfo(alias="_type")

    buttons: AreaFilterButtons

    title: str
    """Display name for this area filter"""


class GenreFilterButtons(BaseModel):
    id: Optional[int] = None
    """Numeric identifier for a resource"""

    api_type: Optional[str] = FieldInfo(alias="_type", default=None)

    genre_ids: Optional[List[int]] = FieldInfo(alias="genreIds", default=None)
    """List of all genre ids for this button"""

    title: Optional[str] = None
    """Display Name of filter button"""


class GenreFilter(BaseModel):
    api_type: str = FieldInfo(alias="_type")

    buttons: GenreFilterButtons

    title: str
    """Display name for this filter"""


class V2RetrieveHeroFilterResponse(BaseModel):
    api_type: str = FieldInfo(alias="_type")

    area_filter: AreaFilter = FieldInfo(alias="areaFilter")
    """Area Filter - contains all areas buttons"""

    genre_filter: GenreFilter = FieldInfo(alias="genreFilter")
    """Genre Filter - contains all genre buttons"""
