"""
Python-side mirror of database/seed_reference.sql master data.
Keeping this in sync with the SQL seed lets the simulator generate
time-series rows with the correct foreign keys *before* those rows
exist in a live database (useful for offline generation -> SQL dump).
"""

REGIONS = {
    1: dict(name="Shopian",   state="Jammu & Kashmir", elevation_m=1980, temp_c=22.5, rain_mm=1150, soil="loamy"),
    2: dict(name="Anantnag",  state="Jammu & Kashmir", elevation_m=1620, temp_c=23.0, rain_mm=1100, soil="silty_loam"),
    3: dict(name="Pulwama",   state="Jammu & Kashmir", elevation_m=1630, temp_c=23.2, rain_mm=1080, soil="loamy"),
    4: dict(name="Baramulla", state="Jammu & Kashmir", elevation_m=1580, temp_c=22.0, rain_mm=1200, soil="alluvial_loam"),
    5: dict(name="Shimla",    state="Himachal Pradesh", elevation_m=2200, temp_c=21.0, rain_mm=1250, soil="loamy"),
    6: dict(name="Kullu",     state="Himachal Pradesh", elevation_m=1280, temp_c=21.5, rain_mm=1150, soil="sandy_loam"),
}

# orchard_id -> (region_id, name, variety, area_ha, soil_compaction_bias)
# soil_compaction_bias: 0-1 stochastic weight used by the compaction/drought-sensitivity pathway
ORCHARDS = {
    1: dict(region_id=1, name="Shopian Block-A (SKUAST Pilot)", variety="Red Delicious",   area_ha=4.20, compaction_bias=0.15),
    2: dict(region_id=1, name="Shopian Block-B",                variety="Royal Delicious", area_ha=3.10, compaction_bias=0.35),
    3: dict(region_id=2, name="Anantnag Riverside Orchard",     variety="Golden Delicious", area_ha=2.80, compaction_bias=0.10),
    4: dict(region_id=3, name="Pulwama Terrace Orchard",        variety="Royal Delicious", area_ha=3.50, compaction_bias=0.45),
    5: dict(region_id=5, name="Shimla Highland Orchard",        variety="Royal Delicious", area_ha=5.00, compaction_bias=0.20),
    6: dict(region_id=6, name="Kullu Valley Orchard",           variety="Red Delicious",   area_ha=2.60, compaction_bias=0.25),
}

# sensor_nodes were inserted 5-per-orchard in this fixed order: soil@10, soil@30, soil@60, weather, tree
def node_ids_for_orchard(orchard_id: int) -> dict:
    base = (orchard_id - 1) * 5 + 1
    return {
        "soil_10": base,
        "soil_30": base + 1,
        "soil_60": base + 2,
        "weather": base + 3,
        "tree": base + 4,
    }

# pest_disease_catalog ids, in insertion order from seed_reference.sql
PEST_DISEASE = {
    1: "Apple Scab",
    2: "San Jose Scale",
    3: "Codling Moth",
    4: "Apple Blotch Leaf Miner",
    5: "Root Water-Uptake Collapse",
    6: "Salinity-Induced Canopy Stress",
    7: "Nitrogen-Mineralization Collapse",
    8: "Soil Compaction Drought Sensitivity",
}

STORAGE_FACILITIES = {
    1: dict(name="Shopian Integrated Cold Chain", target_temp_c=1.0, target_rh=92.0, orchard_ids=[1, 2]),
    2: dict(name="Anantnag CA Store",             target_temp_c=0.5, target_rh=93.0, orchard_ids=[3, 4]),
    3: dict(name="Parwanoo Cold Storage Hub",     target_temp_c=2.0, target_rh=90.0, orchard_ids=[5, 6]),
}
