"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

from builtins import (
    int,
    str,
)
from collections.abc import (
    Iterable,
)
from google.protobuf.descriptor import (
    Descriptor,
    FileDescriptor,
)
from google.protobuf.internal.containers import (
    RepeatedCompositeFieldContainer,
)
from google.protobuf.message import (
    Message,
)
from typing import (
    Literal,
    final,
)

DESCRIPTOR: FileDescriptor

@final
class FollowedFlight(Message):
    DESCRIPTOR: Descriptor

    FLIGHT_ID_FIELD_NUMBER: int
    LIVE_CLICKS_FIELD_NUMBER: int
    TOTAL_CLICKS_FIELD_NUMBER: int
    FLIGHT_NUMBER_FIELD_NUMBER: int
    CALLSIGN_FIELD_NUMBER: int
    SQUAWK_FIELD_NUMBER: int
    FROM_IATA_FIELD_NUMBER: int
    FROM_CITY_FIELD_NUMBER: int
    TO_IATA_FIELD_NUMBER: int
    TO_CITY_FIELD_NUMBER: int
    TYPE_FIELD_NUMBER: int
    FULL_DESCRIPTION_FIELD_NUMBER: int
    flight_id: int
    """FR24 Flight ID (e.g. `962709904` = `0x3961c990`)"""
    live_clicks: int
    """Number of live clicks/views (e.g. `1212`)"""
    total_clicks: int
    """Total number of clicks/views (e.g. `6128`)"""
    flight_number: str
    """Flight number (e.g. `"EK261"`)"""
    callsign: str
    """Callsign (e.g. `"UAE261"`)"""
    squawk: int
    """Squawk code (e.g. `4032` = `0o7700`)"""
    from_iata: str
    """IATA code of origin airport (e.g. `"DXB"`)"""
    from_city: str
    """City name of origin airport (e.g. `"Dubai"`)"""
    to_iata: str
    """IATA code of destination airport (e.g. `"GRU"`)"""
    to_city: str
    """City name of destination airport (e.g. `"Sao Paulo"`)"""
    type: str
    """Aircraft type code (e.g. `"A388"`)"""
    full_description: str
    """Full aircraft description (e.g. `"Airbus A380-861"`)"""
    def __init__(
        self,
        *,
        flight_id: int = ...,
        live_clicks: int = ...,
        total_clicks: int = ...,
        flight_number: str = ...,
        callsign: str = ...,
        squawk: int = ...,
        from_iata: str = ...,
        from_city: str = ...,
        to_iata: str = ...,
        to_city: str = ...,
        type: str = ...,
        full_description: str = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["callsign", b"callsign", "flight_id", b"flight_id", "flight_number", b"flight_number", "from_city", b"from_city", "from_iata", b"from_iata", "full_description", b"full_description", "live_clicks", b"live_clicks", "squawk", b"squawk", "to_city", b"to_city", "to_iata", b"to_iata", "total_clicks", b"total_clicks", "type", b"type"]) -> None: ...

@final
class TopFlightsRequest(Message):
    DESCRIPTOR: Descriptor

    LIMIT_FIELD_NUMBER: int
    limit: int
    """1..=10"""
    def __init__(
        self,
        *,
        limit: int = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["limit", b"limit"]) -> None: ...

@final
class TopFlightsResponse(Message):
    DESCRIPTOR: Descriptor

    SCOREBOARD_LIST_FIELD_NUMBER: int
    @property
    def scoreboard_list(self) -> RepeatedCompositeFieldContainer[FollowedFlight]: ...
    def __init__(
        self,
        *,
        scoreboard_list: Iterable[FollowedFlight] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: Literal["scoreboard_list", b"scoreboard_list"]) -> None: ...
