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

from typing import Optional
from typing_extensions import Literal

from pydantic import Field as FieldInfo

from ..._models import BaseModel

__all__ = ["HeroView", "OverrideAvailabilityView", "OverrideInfoView"]


class OverrideAvailabilityView(BaseModel):
    style: Literal["RED", "BLACK"]
    """Text color for this view. (non-null)"""

    text: str
    """Display text for this view.

    (Sold Out, Opens April 14 ) (non-null, allow empty string)
    """

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


class OverrideInfoView(BaseModel):
    api_type: Literal["HeroNoteInfoView", "HeroPriceInfoView"] = FieldInfo(alias="_type")
    """
    This is type of the view. Client should use this field to know how to parse this
    object. (non-null, subclass \\__type)
    """


class HeroView(BaseModel):
    api_type: Literal["HeroShowView", "HeroShowGroupView", "HeroPromoView"] = FieldInfo(alias="_type")
    """Type of object (non-null, const)"""

    hero_image_url: str = FieldInfo(alias="heroImageUrl")
    """A link points to an external resource. For images we using IMGX.

    To get the right size see link "https://docs.imgix.com/apis/url/size"
    """

    override_availability_view: OverrideAvailabilityView = FieldInfo(alias="overrideAvailabilityView")
    """View object to show status"""

    override_info_view: OverrideInfoView = FieldInfo(alias="overrideInfoView")
    """This is a base class.

    Inherited by:

    - HeroNoteInfoView
    - HeroPriceInfoView
    """

    title: str
    """Display name of Hero, (non-null, should not be empty)"""

    hero_image_v1_url: Optional[str] = FieldInfo(alias="heroImageV1Url", default=None)
    """A link points to an external resource. For images we using IMGX.

    To get the right size see link "https://docs.imgix.com/apis/url/size"
    """
