# Generated by the protocol buffer compiler.  DO NOT EDIT!
# sources: proto/geography/geography.proto
# plugin: python-betterproto
from dataclasses import dataclass
from datetime import datetime
from typing import List

import betterproto


class BarColorType(betterproto.Enum):
    """for BarGraph type"""

    FIXCOLOR = 0
    VARCOLOR = 1


class BarShapeType(betterproto.Enum):
    BOX = 0
    HEX = 1


@dataclass
class Geo(betterproto.Message):
    """geographic data  (mainly for supply)"""

    type: str = betterproto.string_field(1)
    id: int = betterproto.int32_field(2)
    label: str = betterproto.string_field(3)
    data: bytes = betterproto.bytes_field(4)
    options: str = betterproto.string_field(5)


@dataclass
class Line(betterproto.Message):
    from_: List[float] = betterproto.double_field(1)
    to: List[float] = betterproto.double_field(2)


@dataclass
class Lines(betterproto.Message):
    lines: List["Line"] = betterproto.message_field(1)
    width: int = betterproto.int32_field(2)
    color: List[int] = betterproto.int32_field(3)


@dataclass
class Point(betterproto.Message):
    lat: float = betterproto.double_field(1)
    lon: float = betterproto.double_field(2)


@dataclass
class Path(betterproto.Message):
    points: List["Point"] = betterproto.message_field(1)
    width: int = betterproto.int32_field(2)
    color: List[int] = betterproto.int32_field(3)


@dataclass
class Paths(betterproto.Message):
    paths: List["Path"] = betterproto.message_field(1)


@dataclass
class Arcs(betterproto.Message):
    srcs: List["Point"] = betterproto.message_field(1)
    tgts: List["Point"] = betterproto.message_field(2)
    src_cols: List[int] = betterproto.int32_field(3)
    tgt_cols: List[int] = betterproto.int32_field(4)
    tilts: List[int] = betterproto.int32_field(5)


@dataclass
class Scatters(betterproto.Message):
    points: List["Point"] = betterproto.message_field(1)
    radiuses: List[int] = betterproto.int32_field(2)
    fill_colors: List[int] = betterproto.int32_field(3)
    line_colors: List[int] = betterproto.int32_field(4)
    line_width: int = betterproto.int32_field(5)
    fill_alpha: int = betterproto.int32_field(6)


@dataclass
class TopTextLabel(betterproto.Message):
    label: str = betterproto.string_field(1)
    style: str = betterproto.string_field(2)


@dataclass
class ViewState(betterproto.Message):
    lat: float = betterproto.double_field(1)
    lon: float = betterproto.double_field(2)
    zoom: float = betterproto.double_field(3)
    pitch: float = betterproto.double_field(4)
    duration: float = betterproto.double_field(5)


@dataclass
class Bearing(betterproto.Message):
    bearing: float = betterproto.double_field(1)
    duration: float = betterproto.double_field(2)


@dataclass
class Pitch(betterproto.Message):
    pitch: float = betterproto.double_field(1)
    duration: float = betterproto.double_field(2)


@dataclass
class ClearMoves(betterproto.Message):
    message: str = betterproto.string_field(1)


@dataclass
class ClearScatters(betterproto.Message):
    message: str = betterproto.string_field(1)


@dataclass
class ClearArcs(betterproto.Message):
    message: str = betterproto.string_field(1)


@dataclass
class BarData(betterproto.Message):
    label: str = betterproto.string_field(1)
    color: int = betterproto.int32_field(3)
    value: float = betterproto.double_field(2)


@dataclass
class BarGraph(betterproto.Message):
    id: int = betterproto.int32_field(1)
    ts: datetime = betterproto.message_field(2)
    shape_type: "BarShapeType" = betterproto.enum_field(3)
    color_type: "BarColorType" = betterproto.enum_field(4)
    color: int = betterproto.int32_field(5)
    lat: float = betterproto.double_field(6)
    lon: float = betterproto.double_field(7)
    width: float = betterproto.double_field(8)
    radius: float = betterproto.double_field(9)
    min: float = betterproto.double_field(10)
    max: float = betterproto.double_field(11)
    area_color: int = betterproto.int32_field(12)
    bar_data: List["BarData"] = betterproto.message_field(13)
    text: str = betterproto.string_field(14)


@dataclass
class BarGraphs(betterproto.Message):
    bars: List["BarGraph"] = betterproto.message_field(1)


@dataclass
class HarmoVIS(betterproto.Message):
    conf_json: str = betterproto.string_field(1)
