from typing import Dict, List

# Each provider entry matches the app’s expected dynamic-form shape
# fields: key, label, type ("text"|"number"|"select"), required, options[]
CATALOG: Dict[str, List[dict]] = {
    "fastag": [
        {"code": "icici_fastag", "name": "ICICI FASTag", "fields": [
            {"key": "vehicle_number", "label": "Vehicle Registration Number", "type": "text", "required": True}
        ]},
        {"code": "hdfc_fastag", "name": "HDFC FASTag", "fields": [
            {"key": "vehicle_number", "label": "Vehicle Registration Number", "type": "text", "required": True}
        ]},
        {"code": "sbi_fastag", "name": "SBI FASTag", "fields": [
            {"key": "vehicle_number", "label": "Vehicle Registration Number", "type": "text", "required": True}
        ]},
    ],
    "postpaid": [
        {"code": "airtel_postpaid", "name": "Airtel Postpaid", "fields": [
            {"key": "mobile", "label": "Mobile Number", "type": "number", "required": True}
        ]},
        {"code": "jio_postpaid", "name": "Jio Postpaid", "fields": [
            {"key": "mobile", "label": "Mobile Number", "type": "number", "required": True}
        ]},
    ],
    "electricity": [
        {"code": "bescom_ele", "name": "BESCOM", "fields": [
            {"key": "account_id", "label": "Unique Service Number", "type": "text", "required": True}
        ]},
        {"code": "tangedco_ele", "name": "TANGEDCO", "fields": [
            {"key": "consumer_no", "label": "Consumer Number", "type": "text", "required": True}
        ]},
    ],
    "landline": [
        {"code": "bsnl_landline", "name": "BSNL Landline", "fields": [
            {"key": "std_code", "label": "STD Code", "type": "number", "required": True},
            {"key": "phone_no", "label": "Landline Number", "type": "number", "required": True}
        ]},
    ],
    "broadband": [
        {"code": "act_broadband", "name": "ACT Broadband", "fields": [
            {"key": "account_no", "label": "Account Number", "type": "text", "required": True}
        ]},
    ],
    "gas": [
        {"code": "indane_gas", "name": "Indane Gas", "fields": [
            {"key": "book_using", "label": "Book Using", "type": "select", "required": True, "options": ["Mobile Number", "Consumer ID"]},
            {"key": "mobile", "label": "Mobile Number", "type": "number", "required": False},
            {"key": "consumer_id", "label": "Consumer ID", "type": "text", "required": False}
        ]},
    ],
    "insurance": [
        {"code": "lic_policy", "name": "LIC Policy", "fields": [
            {"key": "policy_no", "label": "Policy Number", "type": "text", "required": True}
        ]},
    ],
    "loan": [
        {"code": "hdfc_loan", "name": "HDFC Loan", "fields": [
            {"key": "loan_account_no", "label": "Loan Account Number", "type": "text", "required": True}
        ]},
    ],
    "water": [
        {"code": "bwssb_water", "name": "BWSSB", "fields": [
            {"key": "consumer_no", "label": "Consumer Number", "type": "text", "required": True}
        ]},
    ],
    # add "dth" here if you plan to use bills flow for DTH
}
