# flightmonitor/map/map_constants.py
"""
Constants related to map drawing, appearance, and behavior.
"""

from typing import Optional, Tuple

# --- Map Drawing Colors and Styles ---

AREA_BOUNDARY_COLOR: str = "blue"
AREA_BOUNDARY_THICKNESS_PX: int = 2

TILE_TEXT_COLOR: str = "white"
TILE_TEXT_BG_COLOR: str = "rgba(0, 0, 0, 150)"

# --- Graticule (Grid) Constants ---
GRATICULE_ENABLED: bool = True
GRATICULE_LINE_COLOR: str = "rgba(100, 100, 100, 128)"
GRATICULE_LINE_WIDTH: int = 1
GRATICULE_LABEL_FONT_SIZE: int = 10
GRATICULE_MIN_PIXEL_SPACING: int = 200

# --- Map Labeling Constants ---

DEFAULT_LABEL_FONT_PATH: Optional[str] = None

# --- Map Behavior Constants ---
DEFAULT_INITIAL_ZOOM: int = 7
MIN_ZOOM_LEVEL: int = 0
DEFAULT_MAX_ZOOM_FALLBACK: int = 19

# --- Placeholders and Fallbacks ---
DEFAULT_PLACEHOLDER_COLOR_RGB: Tuple[int, int, int] = (220, 220, 220)
DEFAULT_PLACEHOLDER_COLOR_RGB_TK: str = "gray85"

# --- Map Information Panel Formatting ---
COORDINATE_DECIMAL_PLACES: int = 5
MAP_SIZE_KM_DECIMAL_PLACES: int = 1

# --- Simboli DMS ---
DMS_DEGREE_SYMBOL: str = "°"
DMS_MINUTE_SYMBOL: str = "'"
DMS_SECOND_SYMBOL: str = "''"

# Palette colori per le tracce
TRACK_COLOR_PALETTE = [
    "#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#00FFFF",
    "#800000", "#008000", "#000080", "#808000", "#800080", "#008080",
    "#C0C0C0", "#400000", "#004000", "#000040", "#404000", "#400040",
    "#004040", "#202020", "#FF8000", "#80FF00", "#00FF80", "#8000FF",
    "#FF0080", "#0080FF", "#808080", "#A0522D", "#D2691E", "#DAA520",
    "#BDB76B", "#8FBC8F", "#FA8072", "#E9967A", "#F08080", "#CD5C5C",
    "#DC143C", "#B22222", "#FF69B4", "#FF1493", "#C71585", "#DB7093",
    "#E6E6FA", "#D8BFD8", "#DDA0DD", "#EE82EE", "#9932CC", "#8A2BE2",
    "#BA55D3", "#9370DB", "#7B68EE", "#6A5ACD", "#483D8B", "#708090",
    "#778899", "#B0C4DE", "#ADD8E6", "#87CEEB", "#87CEFA", "#00BFFF",
    "#1E90FF", "#6495ED", "#4682B4", "#0000CD", "#00008B",
]