# 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
from .carts.currency_object import CurrencyObject
from .customers.social_share_config import SocialShareConfig

__all__ = ["RushSettings"]


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

    card_description: Optional[str] = FieldInfo(alias="cardDescription", default=None)
    """
    Client needs to display this information on show detail screen in Rush section
    as Description.
    """

    card_title: Optional[str] = FieldInfo(alias="cardTitle", default=None)
    """
    Client needs to display this information on show detail screen in Rush section
    as Title.
    """

    fee_text_per_ticket: Optional[str] = FieldInfo(alias="feeTextPerTicket", default=None)
    """Text to describe the fees per ticket"""

    hero_badge_icon_type: Optional[Literal["DEFAULT", "WICKED_WITCH"]] = FieldInfo(
        alias="heroBadgeIconType", default=None
    )
    """Enum describing which type of icon clients should display on the hero badge."""

    hero_badge_text_available: Optional[str] = FieldInfo(alias="heroBadgeTextAvailable", default=None)

    hero_badge_text_unavailable: Optional[str] = FieldInfo(alias="heroBadgeTextUnavailable", default=None)

    instruction_url: Optional[str] = FieldInfo(alias="instructionUrl", 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"
    """

    remaining_tickets_starting_count: Optional[int] = FieldInfo(alias="remainingTicketsStartingCount", default=None)

    rush_name_override_text: Optional[str] = FieldInfo(alias="rushNameOverrideText", default=None)
    """
    An optional override of the word "Rush," used for customizing the Rush
    experience for a given show.
    """

    rush_price: Optional[CurrencyObject] = FieldInfo(alias="rushPrice", default=None)

    rush_tickets_override_text: Optional[str] = FieldInfo(alias="rushTicketsOverrideText", default=None)
    """
    An optional override of the phrase "Rush Tickets," used for customizing the Rush
    experience for a given show.
    """

    social_share_config_for_unlock: Optional[SocialShareConfig] = FieldInfo(
        alias="socialShareConfigForUnlock", default=None
    )

    v1_instruction_text: Optional[str] = FieldInfo(alias="v1InstructionText", default=None)
    """
    Instruction text how to pickup tickets. Display on chekout page in the end of
    screen.
    """

    v1_is_concierge: Optional[bool] = FieldInfo(alias="v1IsConcierge", default=None)
    """Whether rush is concierge"""

    v1_max_tickets_per_order: Optional[bool] = FieldInfo(alias="v1MaxTicketsPerOrder", default=None)
    """Maximum number of tickets per order for this rush."""
