# 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

__all__ = ["PriceItem"]


class PriceItem(BaseModel):
    api_type: Optional[
        Literal["BASE_PRICE", "CREDIT", "ORDER_FEE", "REWARDS_BENEFIT", "SERVICE_FEE", "TICKET_PROTECTION", "VOUCHER"]
    ] = FieldInfo(alias="_type", default=None)
    """
    Client need to know the type of price to add the correct button or to choose a
    correct style(text color)
    """

    description: Optional[str] = None
    """show's targeted price type metadata for this price point, if any"""

    details: Optional[str] = None
    """Price item calculating details"""

    full: Optional[str] = None

    result: Optional[str] = None
    """Total amount of this price item"""

    result_symbol: Optional[Literal["PLUS", "MINUS", "NONE"]] = FieldInfo(alias="resultSymbol", default=None)
    """Display a plus or minus sign for the result."""

    title: Optional[str] = None
    """Display name for this price item"""

    total: Optional[CurrencyObject] = None
