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

from __future__ import annotations

from typing import Union
from datetime import date
from typing_extensions import Annotated, TypedDict

from ....._utils import PropertyInfo

__all__ = ["ShowtimeListParams"]


class ShowtimeListParams(TypedDict, total=False):
    end_date: Annotated[Union[str, date], PropertyInfo(alias="endDate", format="iso8601")]
    """end date to filter showtimes"""

    include_no_inventory: Annotated[str, PropertyInfo(alias="includeNoInventory")]
    """When true, includes showtimes with no inventory in the response."""

    max_price: Annotated[float, PropertyInfo(alias="maxPrice")]
    """
    A monetary amount with 2 decimal places of precision. This allows to filter
    showtimes where seats with price less than this value are present.
    """

    min_price: Annotated[float, PropertyInfo(alias="minPrice")]
    """
    A monetary amount with 2 decimal places of precision. This allows to filter
    showtimes where seats with price more than this value are present.
    """

    quantity: int
    """
    For showtimes endpoint: Quantity allows filtering showtimes which have
    maxContiguousSeats greater or equal than `quantity`. Only applicable when
    listingType=`REGULAR`

    For showtimes/{showtime_id}/seats: Quantity allows to filter all seatblocks
    which have number of seats greater than or equal to `quantity`.
    """

    start_date: Annotated[Union[str, date], PropertyInfo(alias="startDate", format="iso8601")]
    """start date to filter showtimes"""

    ticket_type: Annotated[str, PropertyInfo(alias="ticketType")]
    """One of '#/definitions/TicketType'"""

    use_override_fields: Annotated[bool, PropertyInfo(alias="useOverrideFields")]
    """
    When true, uses override regular ticket values for the showtime availabilities
    if they exist.
    """
