"""Master reference data — Purchasing Groups (brands) and Branch/Plant codes."""

# 185 Purchasing Groups from SAP: pgr_code -> brand_name
PURCHASING_GROUPS: dict[str, str] = {
    "10R": "10.OR",
    "3SH": "Shell",
    "8AC": "ADC",
    "8AD": "ADATA LIGHTING",
    "8AS": "AGNI SURKASHA",
    "8AV": "AVTRON",
    "8BO": "BOSCH",
    "8CN": "CNHIDEE",
    "8CS": "COMMSCOPE",
    "8DL": "DLIGHT",
    "8DS": "DSC",
    "8EK": "Ekahau",
    "8FL": "FLUKE",
    "8FN": "FLUKE NETWORKS",
    "8FR": "FLIR",
    "8FS": "FSL",
    "8HA": "Honeywell AIDC",
    "8HB": "Honeywell BMS",
    "8HM": "HAMINA WIRELESS",
    "8HW": "HONEYWELL",
    "8KE": "Keysight",
    "8KS": "Keysight",
    "8LP": "LAPP",
    "8ME": "Megger",
    "8MG": "Megger",
    "8NS": "NETSCOUT",
    "8NT": "NETRACK",
    "8NW": "INFLOW TECHNOLOGIE",
    "8PA": "PANDUIT",
    "8PG": "PAG",
    "8PS": "Panasonic",
    "8TE": "TESTO",
    "8ZB": "Zebra",
    "9EC": "ECOMAC",
    "9ER": "ECOMAC REMEDIES",
    "9MD": "MEDICAL DEVICES",
    "9MP": "MEDSTREAM PHAMACEU",
    "9MR": "MAC REMEDIES",
    "9OT": "OTHER PHARMA",
    "9RT": "RYTUS THERAPEUTICS",
    "9SF": "SFC Wellness Pvt L",
    "ACE": "ACER",
    "ADT": "ADATA",
    "AFP": "SAPPHIRE (AFP)",
    "AIC": "AIC",
    "ALT": "ALTEC LANCING",
    "AMD": "AMD",
    "AMZ": "Amazon",
    "ANT": "ASUS NETWORKING",
    "AOC": "AOC",
    "APC": "APC",
    "APO": "ASIA POWER",
    "APP": "Apple",
    "ARG": "ARGOX",
    "ARK": "ASROCK",
    "ASD": "ASUS",
    "ASL": "ASUS",
    "ASM": "ASUS MOBILE (PDA)",
    "ASN": "ASUS",
    "ASS": "ASUS",
    "ASU": "ASUS",
    "AT":  "Audio Technica",
    "ATN": "ATEN International",
    "AUD": "AUDIOVOX",
    "AVI": "AVIOSYS",
    "BB":  "Black Berry",
    "BEL": "BELKIN",
    "BIT": "Bitlens",
    "BOS": "BOSE",
    "BT":  "BT Purchase group",
    "CAB": "CABLE",
    "CAM": "Cambium Networks",
    "CAN": "CANON",
    "CNE": "CNET",
    "COL": "COLORFUL",
    "COM": "COMPEX",
    "CPM": "Customer Pre-Owned",
    "DDN": "DDN",
    "DEC": "DELL COMMERCIAL",
    "DEL": "DELL",
    "DIG": "DIGILINK",
    "DLI": "D'LINK",
    "ECS": "ECS",
    "EDI": "EDIFIER",
    "ELA": "ELANVITTAL",
    "EMX": "EDIMAX",
    "EPR": "EXTND PROD RESPONS",
    "EPS": "EPSON",
    "FIT": "FITBIT",
    "FRE": "FREECOM",
    "FUJ": "FUJITSU",
    "GET": "GETAC",
    "GGL": "GOOGLE",
    "GIG": "GIGABYTE",
    "GNA": "GANNA",
    "GTE": "G TECH",
    "GWD": "GAINWARD",
    "HAR": "HARMAN PRO",
    "HEB": "HP EMERGING BUS",
    "HIC": "HP IPG COMMERCIAL",
    "HIO": "HP IPG CONSUMER",
    "HNC": "HP NETWORKING COM",
    "HP":  "HP",
    "HPE": "HPE",
    "HPO": "HP CONSUMER",
    "HSR": "HOTSTAR",
    "HSS": "HP SERVER STORAGE",
    "HTA": "HITACHI",
    "HUW": "HUAWEI",
    "HWL": "HONEYWELL",
    "IBL": "IBALL",
    "IBM": "IBM",
    "INF": "Infotrend",
    "INS": "INSPUR",
    "INT": "INTEL",
    "JBL": "JBL",
    "JET": "JETWAY",
    "KIN": "KINGSTONE",
    "KOD": "KODAK",
    "LAB": "LABTEC",
    "LDT": "LEADTEK",
    "LEN": "LENOVO",
    "LES": "LES",
    "LG":  "LG",
    "LIN": "Linksys",
    "LOG": "LOGITECH",
    "LUM": "LUM",
    "MAX": "MAXELL",
    "MER": "MERCUSYS",
    "MIC": "MICRON",
    "MMX": "MICROMAX",
    "MOB": "MOBOTIX",
    "MOT": "MOTOROLA",
    "MS":  "MICROSOFT",
    "MSI": "MSI",
    "MSW": "MSwipe",
    "MTK": "MICROTEK",
    "NET": "NETGEAR",
    "NV":  "NVIDIA",
    "NXN": "NXN",
    "OPT": "OPTOMA",
    "OTH": "OTHER",
    "OZA": "OZAKI",
    "PAL": "PALADIN",
    "PAT": "PATRIOT",
    "PHI": "PHILIPS",
    "PIN": "PINE",
    "PIX": "PIXELVIEW",
    "PLT": "PLANTRONICS",
    "PNY": "PNY",
    "PRL": "Prolab",
    "PRO": "PROMO ITEMS",
    "PTM": "Pantum",
    "QKH": "QUICKHEAL",
    "QTM": "QUANTUM",
    "RAP": "RAPOO",
    "RAY": "RAY",
    "RPT": "RPTECH",
    "RRL": "RELIANCE RETAIL LT",
    "SDK": "SANDISK",
    "SEA": "SEAGATE",
    "SER": "SERVIFY",
    "SIM": "SIMMTRONICS",
    "SMC": "SuperMicroComputer",
    "SMN": "SIEMENS",
    "SNO": "SENAO",
    "SON": "SONY",
    "SS":  "SAMSUNG",
    "SYM": "SYMANTEC",
    "TAR": "TARGUS",
    "TH3": "THINK-3",
    "THP": "TRADING HP",
    "TMS": "TRADING MICROSOFT",
    "TOS": "TOSHIBA",
    "TPL": "TP-Link",
    "TRD": "TRANSCEND",
    "TVS": "TVSC",
    "UBQ": "UBIQUITI",
    "VOT": "VOTO",
    "VS":  "VIEW SONIC",
    "WDC": "WESTERN DIGITAL",
    "WEP": "WIPRO",
    "YIN": "YINGHU",
    "ZON": "ZION",
}

# Branch/Plant master — {code, branch_code, name, plant_code}
BRANCHES: list[dict] = [
    {"plant": "1100", "code": "RDEL",  "name": "Delhi"},
    {"plant": "1100", "code": "RWAZ",  "name": "Bazipur"},
    {"plant": "1200", "code": "RCHA",  "name": "Chandigarh"},
    {"plant": "1201", "code": "RJAM",  "name": "Jammu"},
    {"plant": "1202", "code": "RPAR",  "name": "Parwanoo"},
    {"plant": "1300", "code": "RLUC",  "name": "Lucknow"},
    {"plant": "1301", "code": "RDEH",  "name": "Dehradun"},
    {"plant": "1302", "code": "RGHA",  "name": "Ghaziabad"},
    {"plant": "1400", "code": "RGUR",  "name": "Gurgaon"},
    {"plant": "1500", "code": "RJAI",  "name": "Jaipur"},
    {"plant": "1600", "code": "RBAT",  "name": "Bathinda"},
    {"plant": "1601", "code": "RJUD",  "name": "Ludhiana"},
    {"plant": "1602", "code": "RAMI",  "name": "Amritsar"},
    {"plant": "2000", "code": "RCOA",  "name": "CO(Vas)"},
    {"plant": "2100", "code": "RCEN",  "name": "Central RMA"},
    {"plant": "2100", "code": "RRMA",  "name": "CRMA"},
    {"plant": "22009","code": "RGOR",  "name": "Goregaon"},
    {"plant": "22010","code": "RLAM",  "name": "Lamington"},
    {"plant": "22011","code": "RVSH",  "name": "Vasai Warehouse CO"},
    {"plant": "22012","code": "RVAS2", "name": "Vasai Warehouse - Rajneesh"},
    {"plant": "2201", "code": "RGOA",  "name": "Goa"},
    {"plant": "2202", "code": "RJAL",  "name": "Jalgaon"},
    {"plant": "2202", "code": "RNAG",  "name": "Nagpur"},
    {"plant": "2203", "code": "RVAS",  "name": "Rest of Maharashtra"},
    {"plant": "2204", "code": "RAHM",  "name": "Ahmednagar"},
    {"plant": "2205", "code": "RAMR",  "name": "Amravati"},
    {"plant": "2206", "code": "RAUR",  "name": "Chhatrapati Sambhajinagar"},
    {"plant": "2207", "code": "RKOH",  "name": "Kolhapur"},
    {"plant": "2208", "code": "RNAS",  "name": "Nashik"},
    {"plant": "2209", "code": "RSAN",  "name": "Sangali"},
    {"plant": "2210", "code": "RSOA",  "name": "Solapur"},
    {"plant": "2300", "code": "RAHE",  "name": "Ahmedabad"},
    {"plant": "2301", "code": "RSUT",  "name": "Surat"},
    {"plant": "2302", "code": "RRAK",  "name": "Rajkot"},
    {"plant": "2303", "code": "RBAR",  "name": "Baroda"},
    {"plant": "2320", "code": "SAHM",  "name": "Ahmedabad-STPL"},
    {"plant": "2500", "code": "RPUN",  "name": "Pune"},
    {"plant": "2600", "code": "RIND",  "name": "Indore"},
    {"plant": "2601", "code": "RBHO",  "name": "Bhopal"},
    {"plant": "2602", "code": "RJAB",  "name": "Jabalpur"},
    {"plant": "3102", "code": "RAGT",  "name": "Agartala IT"},
    {"plant": "3200", "code": "RBHU",  "name": "Bhubneshwar"},
    {"plant": "3300", "code": "RKOL",  "name": "Kolkata"},
    {"plant": "3301", "code": "RSIL",  "name": "Siliguri"},
    {"plant": "3302", "code": "RGUW",  "name": "Guwahati"},
    {"plant": "3303", "code": "RDUR",  "name": "Durgapur"},
    {"plant": "3371", "code": "PGUW",  "name": "Guwahati-PVLL"},
    {"plant": "3372", "code": "PGUW2", "name": "Guwahati-PVLL 2"},
    {"plant": "3380", "code": "PKOL",  "name": "Kolkata-PVLL"},
    {"plant": "3382", "code": "PKOL2", "name": "Kolkata-PVLL 2"},
    {"plant": "3400", "code": "RRAN",  "name": "Ranchi"},
    {"plant": "3401", "code": "RMUZ",  "name": "Muzaffarpur"},
    {"plant": "3401", "code": "RPAT",  "name": "Patna"},
    {"plant": "3420", "code": "SRAN",  "name": "Ranchi-STPL"},
    {"plant": "3421", "code": "SPAT",  "name": "Patna-STPL"},
    {"plant": "3471", "code": "PPAT",  "name": "Patna-PVLL"},
    {"plant": "3480", "code": "PRAN",  "name": "Ranchi-PVLL"},
    {"plant": "3481", "code": "PPAT2", "name": "Patna-PVLL 2"},
    {"plant": "3500", "code": "RRAI",  "name": "Raipur"},
    {"plant": "3501", "code": "RBIL",  "name": "Bilaspur"},
    {"plant": "3580", "code": "PRAI",  "name": "Raipur-PVLL"},
    {"plant": "4100", "code": "RBAN",  "name": "Bangalore"},
    {"plant": "4101", "code": "RHUB",  "name": "Hubli"},
    {"plant": "4102", "code": "RMAN",  "name": "Mangalore"},
    {"plant": "4103", "code": "RMYS",  "name": "Mysore"},
    {"plant": "4104", "code": "RBEL",  "name": "Belgaum"},
    {"plant": "4120", "code": "SBAN",  "name": "Bangalore-STPL"},
    {"plant": "4181", "code": "PHUB",  "name": "Hubli-PVLL"},
    {"plant": "4200", "code": "RCOC",  "name": "Cochin"},
    {"plant": "4201", "code": "RCAL",  "name": "Calicut"},
    {"plant": "4202", "code": "RTRI",  "name": "Trivandrum"},
    {"plant": "4203", "code": "RKOT",  "name": "Kottayam"},
    {"plant": "4270", "code": "PCOC",  "name": "Cochin-PVLL"},
    {"plant": "4280", "code": "PCOC2", "name": "Cochin-PVLL 2"},
    {"plant": "4300", "code": "RSEC",  "name": "Secunderabad"},
    {"plant": "4301", "code": "RVIJ",  "name": "Vijayawada"},
    {"plant": "4302", "code": "RVIZ",  "name": "Vizag"},
    {"plant": "4303", "code": "RRAJ",  "name": "Rajhmundry"},
    {"plant": "4370", "code": "PSEC",  "name": "Secunderabad-PVLL"},
    {"plant": "4380", "code": "PSEC2", "name": "Secunderabad-PVLL 2"},
    {"plant": "4400", "code": "RCHE",  "name": "Chennai"},
    {"plant": "4401", "code": "RCOI",  "name": "Coimbatore"},
    {"plant": "4402", "code": "RMAD",  "name": "Madurai"},
    {"plant": "4403", "code": "RPON",  "name": "Pondicherry"},
    {"plant": "4421", "code": "SCOI",  "name": "Coimbatore-STPL"},
    {"plant": "4422", "code": "SMAD",  "name": "Madurai-STPL"},
    {"plant": "4440", "code": "PCHE",  "name": "Chennai-PVLL"},
    {"plant": "4441", "code": "SCOI2", "name": "Coimbatore-STPL 2"},
    {"plant": "4442", "code": "SMAD2", "name": "Madurai-STPL 2"},
    {"plant": "4453", "code": "BNAH",  "name": "Drule-RPLL"},
    {"plant": "4460", "code": "PCHE2", "name": "Chennai-RPLL"},
    {"plant": "1120", "code": "PDEL",  "name": "Delhi-PVLL"},
    {"plant": "1121", "code": "SDEL",  "name": "Delhi-STPL"},
    {"plant": "1170", "code": "PDEL2", "name": "Delhi-PVLL 2"},
    {"plant": "1270", "code": "PCHA",  "name": "Chandigarh-PVLL"},
    {"plant": "1280", "code": "PCHA2", "name": "Chandigarh-PVLL 2"},
    {"plant": "1304", "code": "RALL",  "name": "Allahabad-RPLL"},
    {"plant": "1305", "code": "RAGR",  "name": "Agra-RPLL"},
    {"plant": "1320", "code": "SLUC",  "name": "Lucknow-STPL"},
    {"plant": "1380", "code": "PLUC",  "name": "Lucknow-PVLL"},
    {"plant": "1400", "code": "SGUR",  "name": "Gurgaon-PVLL"},
    {"plant": "1470", "code": "VGUR",  "name": "Gurgaon-PVPL"},
    {"plant": "1480", "code": "PB",    "name": "Gurgaon-PVLL (PB)"},
    {"plant": "1500", "code": "SJAI",  "name": "Jaipur-PVLL"},
    {"plant": "1501", "code": "RJOD",  "name": "Jodhpur-RPLL"},
    {"plant": "1520", "code": "SJAI2", "name": "Jaipur-STPL"},
    {"plant": "1521", "code": "SJOD",  "name": "Jodhpur-STPL"},
    {"plant": "1522", "code": "SUDA",  "name": "Udaipur-STPL"},
    {"plant": "1560", "code": "PJAI",  "name": "Jaipur-PVLL"},
    {"plant": "1570", "code": "PJAI2", "name": "Jaipur-PVLL 2"},
    {"plant": "1580", "code": "PJAI3", "name": "Jaipur-PVLL 3"},
    {"plant": "1604", "code": "CCHA",  "name": "Central-RMA-RPLL"},
    {"plant": "2005", "code": "RARS",  "name": "CO - Arshiya FTWZ-RPLL"},
    {"plant": "2060", "code": "SCOR",  "name": "Corporate Office-PVLL"},
    {"plant": "2070", "code": "SCOR2", "name": "Corporate Office-PVLL 2"},
    {"plant": "2080", "code": "SCOR3", "name": "Corporate Office-PVLL 3"},
    {"plant": "2220", "code": "SMUM",  "name": "Mumbai-PVLL"},
    {"plant": "2272", "code": "PNAG",  "name": "Nagpur-PVLL"},
    {"plant": "2280", "code": "PHUM",  "name": "Mumbai-PVLL 2"},
    {"plant": "2282", "code": "PNAG2", "name": "Nagpur-PVLL 2"},
    {"plant": "2320", "code": "PSAN",  "name": "Gandhidham-RPLL"},
    {"plant": "2321", "code": "SSUR",  "name": "Surat-STPL"},
    {"plant": "2322", "code": "SAHM2", "name": "Ahmedabad-STPL 2"},
    {"plant": "2670", "code": "PIND",  "name": "Indore-PVLL"},
    {"plant": "2680", "code": "PIND2", "name": "Indore-PVLL 2"},
    {"plant": "3101", "code": "RAGA",  "name": "Agartala-RPLL"},
    {"plant": "3270", "code": "PBHU",  "name": "Bhubneshwar-PVLL"},
    {"plant": "3280", "code": "PBHU2", "name": "Bhubneshwar-PVLL 2"},
    {"plant": "9999", "code": "ZSCR",  "name": "Z.Scrap Location"},
]

# Lookup helpers
def get_brand_name(pgr_code: str) -> str:
    return PURCHASING_GROUPS.get(pgr_code, pgr_code)

def get_branch_name(plant_code: str) -> str:
    for b in BRANCHES:
        if b["plant"] == str(plant_code):
            return b["name"]
    return plant_code

def get_all_plants() -> list[str]:
    return sorted({b["plant"] for b in BRANCHES})

def branches_as_options() -> list[dict]:
    """Returns [{value, label}] list for dropdowns, unique by plant+name."""
    seen = set()
    opts = []
    for b in BRANCHES:
        key = (b["plant"], b["name"])
        if key not in seen:
            seen.add(key)
            opts.append({"value": b["plant"], "label": f"{b['plant']} – {b['name']}"})
    return opts

def brands_as_options() -> list[dict]:
    """Returns [{value, label}] list for dropdowns."""
    return [{"value": k, "label": f"{k} – {v}"} for k, v in sorted(PURCHASING_GROUPS.items())]
