"""Coffee-growing region coordinates for OpenWeatherMap extraction.

Each entry is a dict with:
  id       — filesystem-safe unique identifier (used as landing subdirectory name)
  lat/lon  — WGS84 coordinates
  name     — human-readable region name
  country  — ISO 3166-1 alpha-2 country code
  variety  — 'Arabica' or 'Robusta' (drives growing season logic in SQL)

Locations were chosen to represent the primary growing zones for the world's
major coffee-producing countries, weighted toward Arabica regions since KC=F
futures track Arabica.
"""

LOCATIONS: list[dict] = [
    # Brazil — largest Arabica producer; frost risk in highlands (Jun–Aug)
    {"id": "brazil_minas_gerais", "lat": -19.9167, "lon": -43.9345, "name": "Minas Gerais",     "country": "BR", "variety": "Arabica"},
    {"id": "brazil_parana",       "lat": -23.4205, "lon": -51.9330, "name": "Paraná",            "country": "BR", "variety": "Arabica"},
    # Vietnam — largest Robusta producer; Central Highlands plateau
    {"id": "vietnam_highlands",   "lat":  12.6667, "lon": 108.0500, "name": "Central Highlands", "country": "VN", "variety": "Robusta"},
    # Colombia — premium washed Arabica; Huila department
    {"id": "colombia_huila",      "lat":   2.5359, "lon": -75.5277, "name": "Huila",             "country": "CO", "variety": "Arabica"},
    # Ethiopia — birthplace of Arabica; Sidama zone (Yirgacheffe region)
    {"id": "ethiopia_sidama",     "lat":   6.7612, "lon":  38.4721, "name": "Sidama",            "country": "ET", "variety": "Arabica"},
    # Honduras — largest Central American producer; Copán department
    {"id": "honduras_copan",      "lat":  14.8333, "lon": -89.1500, "name": "Copán",             "country": "HN", "variety": "Arabica"},
    # Guatemala — benchmark Central American; Antigua valley
    {"id": "guatemala_antigua",   "lat":  14.5586, "lon": -90.7295, "name": "Antigua",           "country": "GT", "variety": "Arabica"},
    # Indonesia — Sumatra (Mandheling); significant Robusta production
    {"id": "indonesia_sumatra",   "lat":   3.5952, "lon":  98.6722, "name": "Sumatra",           "country": "ID", "variety": "Robusta"},
    # Brazil — Espírito Santo; largest Conilon (Robusta) producing state in Brazil
    {"id": "brazil_espirito_santo", "lat": -19.3908, "lon": -40.0668, "name": "Espírito Santo",  "country": "BR", "variety": "Robusta"},
    # Peru — Jaén/Cajamarca; fastest-growing Arabica origin, top-10 global producer
    {"id": "peru_jaen",           "lat":  -5.7064, "lon": -78.8077, "name": "Jaén",              "country": "PE", "variety": "Arabica"},
    # Uganda — Mount Elgon/Bugisu; 4th largest African producer, significant Robusta
    {"id": "uganda_elgon",        "lat":   1.0826, "lon":  34.1751, "name": "Mount Elgon",       "country": "UG", "variety": "Robusta"},
    # Ivory Coast — Daloa region; historically significant West African Robusta
    {"id": "ivory_coast_daloa",   "lat":   6.8774, "lon":  -6.4502, "name": "Daloa",             "country": "CI", "variety": "Robusta"},
]

assert len(LOCATIONS) == 12, f"Expected 12 locations, got {len(LOCATIONS)}"
assert all("id" in loc and "lat" in loc and "lon" in loc for loc in LOCATIONS), \
    "Each location must have id, lat, lon"
