from typing import Final

TABLE_ORDER: Final = [
    "id",
    "subid",
    "inputStr",
    "label",
    "street",
    "houseNumber",
    "postalCode",
    "city",
    "county",
    "state",
    "countryName",
    "access_lat",
    "access_lng",
    "pos_lat",
    "pos_lng",
    "resultType",
    "houseNumberType",
    "countryCode",
    "stateCode",
    "countyCode",
    "scoreQuery",
    "score_country",
    "score_city",
    "score_houseNumber",
    "score_postalCode",
    "score_streets",
]

ALLOWED_COLUMNS: Final = {
    "id",
    "street",
    "housenumber",
    "postalcode",
    "city",
    "ctrycode",
    "address_string",
    "_",
}

GEOCODE_COST: Final = 3
POISEARCH_COST: Final = 3
ISOLINES_COST: Final = 20
ROUTING_COST_BY_TRANSPORT_MODE: Final = {
    "car": 3,
    "pedestrian": 3,
    "bicycle": 3,
}

SERVER: Final = "https://cg-license.casageo.eu/"

ADDRESS_NAMES_MODES: Final = ["matched", "normalized"]
POSTAL_CODE_MODES: Final = ["cityLookup", "districtLookup"]

RANGE_TYPES: Final = ["time", "distance"]
TRANSPORT_MODES: Final = ["car", "pedestrian", "bicycle"]
ROUTING_MODES: Final = ["fast", "short"]
DIRECTION_TYPES: Final = ["outgoing", "incoming"]

AVOIDABLE_FEATURES: Final = [
    "carShuttleTrain",
    "controlledAccessHighway",
    "dirtRoad",
    "ferry",
    "seasonalClosure",
    "tollRoad",
    "tunnel",
    # "uTurns", # Not supported for pedestrian, bicycle and scooter transport modes.
]

UNIT_SYSTEMS: Final = ["metric", "imperial"]
