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

from typing import Optional

from pydantic import Field as FieldInfo

from ....._models import BaseModel
from ..carts.currency_object import CurrencyObject

__all__ = ["LotterySettings", "SkillBasedProblem"]


class SkillBasedProblem(BaseModel):
    answer: Optional[str] = None
    """The answer to the skill-based question"""

    question: Optional[str] = None
    """The skill-based question"""


class LotterySettings(BaseModel):
    id: int
    """Numeric identifier for a resource"""

    api_type: str = FieldInfo(alias="_type")

    lottery_price: CurrencyObject = FieldInfo(alias="lotteryPrice")

    supports_bulk_lottery_entry: bool = FieldInfo(alias="supportsBulkLotteryEntry")
    """Information on if the show supports group lottery or not."""

    accessibility_text: Optional[str] = FieldInfo(alias="accessibilityText", default=None)
    """Text explaining how customers can obtain handicap-accessible tickets."""

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

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

    hero_badge_text: Optional[str] = FieldInfo(alias="heroBadgeText", default=None)

    instructions_text: Optional[str] = FieldInfo(alias="instructionsText", default=None)
    """
    Message client needs to display on checkout screen when customer enter the
    lottery
    """

    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"
    """

    show_price_for_lottery: Optional[bool] = FieldInfo(alias="showPriceForLottery", default=None)
    """if true - Client needs to display lottery price (only $20.00) on hero view.

    If false - Client needs to display Enter/for a chance\nto win. This is a case if
    only lottery are available for selected days in filterView.
    """

    skill_based_problem: Optional[SkillBasedProblem] = FieldInfo(alias="skillBasedProblem", default=None)
    """A question and answer for Canadian lotteries"""

    winner_claim_text: Optional[str] = FieldInfo(alias="winnerClaimText", default=None)
    """A text describing how long customers have to claim winning tickets."""
