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

from __future__ import annotations

from typing import List
from typing_extensions import Literal, Required, Annotated, TypedDict

from ....._utils import PropertyInfo

__all__ = ["ShowtimeRetrieveSectionsParams"]


class ShowtimeRetrieveSectionsParams(TypedDict, total=False):
    id: Required[int]

    chart_key_override: Annotated[str, PropertyInfo(alias="chartKeyOverride")]
    """
    Optional chart key to override the show chart key for this showtime. Should only
    be used in special cases.
    """

    include_attributes: Annotated[bool, PropertyInfo(alias="includeAttributes")]
    """Optional flag to include seat and section attributes"""

    max_seats: Annotated[int, PropertyInfo(alias="maxSeats")]
    """If more than this many seats are available, return this many at a maximum.

    Otherwise, return all available.
    """

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

    remove_unavailable_seats: Annotated[bool, PropertyInfo(alias="removeUnavailableSeats")]
    """
    Optional flag to remove from response the unavailable seats present in redis
    state
    """

    sort_by: Annotated[List[Literal["NAME"]], PropertyInfo(alias="sortBy")]
    """List of sorting parameters (strings)"""
