from dotenv import load_dotenv
import os

load_dotenv()

host = os.environ.get('HOST')
port = os.environ.get('PORT')

php_path = '../python-core/static/php/'

# Cors origin
domain = ["http://127.0.0.1:8000", "http://localhost:8003", "https://checkoutuat.creditfair.in", "http://localhost:3000", "https://preprod.creditfair.in",
          "https://checkout.creditfair.in", "https://test10.creditfair.in", "https://creditfair.in", "https://test1.creditfair.in",
          "https://test2.creditfair.in","https://test8.creditfair.in", "https://test6.creditfair.in",
          "https://cf-demoappbb.web.app", "https://solar.creditfair.in", "https://test3.creditfair.in", "https://solar-uat.creditfair.in",
          "https://one.creditfair.in","https://one-uat.creditfair.in"]

# app secret key
SECRET_KEY = os.environ.get('SECRET_KEY')

# hashing secret key
HASH_KEY = os.environ.get('HASH_KEY')

# set basic auth routes
BASIC_AUTH_ROUTES = ['/api/create-customer', '/api/product-list',
                     '/api/merchant-location-list', '/api/upload-document', '/api/customer-details',
                     '/api/cancellation-request',
                     '/api/get-status', '/api/digio_vkyc', '/api/digio_generate_token']

JWT_AUTH_ROUTES = ['/api/create-customer', '/api/upload-document', '/api/customer-details',
                   '/api/cancellation-request', '/api/get-status', '/api/digio_vkyc', '/api/digio_generate_token',
                   '/V2/create-application',
                   '/V2/employement-details', '/V2/electricity-bill', '/V2/product-details', '/V2/get-user-details',
                   '/V2/generate-account-aggregator-link', '/V2/upload-solar-docs', '/V2/store-installation-address',
                   '/V2/get-available-offers',
                   '/V2/check-bureau', '/V2/save-offer', '/V2/ckyc', '/V2/update-application']

# Middleware basic auth credentials
CLIENT_ID = os.environ.get('PIGGY_CLIENT_ID')
CLIENT_SECRET = os.environ.get('PIGGY_CLIENT_SECRET')

CF_ENDPOINT = os.environ.get('CF_ENDPOINT')
BUREAU_ENDPOINT = os.environ.get('BUREAU_ENDPOINT')
EMI_CHECKOUT_BE_ENDPOINT = os.environ.get("EMI_CHECKOUT_BE_ENDPOINT")

P2P_LENDER_ID = os.environ.get("P2P_LENDER_ID")

OTP = os.environ.get('OTP')

# Exotel details
APP_TOKEN = os.environ.get('APP_TOKEN')
APP_KEY = os.environ.get('APP_KEY')
APP_SID = os.environ.get('APP_SID')
MSG_BODY = os.environ.get('MSG_BODY')
SMS_TEMPLATE = os.environ.get('SMS_TEMPLATE')
CONSENT_SMS_TEMPLATE = os.environ.get('CONSENT_SMS_TEMPLATE')
LINK_MSG_BODY = os.environ.get('LINK_MSG_BODY')
LINK_TEMPLATE = os.environ.get('LINK_TEMPLATE')
JUSPAY_SMS = os.environ.get('JUSPAY_SMS')
JUSPAY_TEMPLATE = os.environ.get('JUSPAY_TEMPLATE')

# Quicksmart
Quicksmart_api_key = os.environ.get("QUICKSMART_API_KEY")
QUICKSMART_USERNAME = os.environ.get("QUICKSMART_USERNAME")

# S3 details
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_REGION_NAME = os.environ.get('AWS_REGION_NAME')
AWS_BUCKET = os.environ.get('AWS_BUCKET')

# Cloudwatch
CLOUDWATCH_GROUP = os.environ.get('CLOUDWATCH_GROUP')
CLOUDWATCH_STREAM = os.environ.get('CLOUDWATCH_STREAM')
CLOUDWATCH_SECRET_KEY = os.environ.get('CLOUDWATCH_SECRET_KEY')
CLOUDWATCH_ACCESS_KEY = os.environ.get('CLOUDWATCH_ACCESS_KEY')

# Logging
LOG_HANDLER = os.environ.get('LOG_HANDLER')
LOG_PATH = os.environ.get('LOG_PATH')
LEVEL = os.environ.get('LOG_LEVEL')

# Karza
KARZA_KEY = os.environ.get('KARZA_KEY')

# Pirimid
PIRIMID_API_KEY = os.environ.get('PIRIMID_API_KEY')
PIRIMID_URL = os.environ.get('PIRIMID_URL')
PIRIMID_TENANT_ID = os.environ.get('PIRIMID_TENANT_ID')

# AES256
AES256_IV = os.environ.get('AES256_IV')
AES256_KEY = os.environ.get('AES256_KEY')

# Mailgun
MAILGUN_DOMAIN = os.environ.get('MAILGUN_DOMAIN')
MAILGUN_SECRET = os.environ.get('MAILGUN_SECRET')
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_MESSAGE = os.environ.get('MAIL_MESSAGE')
JUSPAY_MAIL = os.environ.get('JUSPAY_MAIL')

#DIGIO
BASE_URL = os.environ.get('DIGIO_BASE_URL')
TEMPLATE_URL = BASE_URL + '/client/kyc/v2/request/with_template'
CF_DIGIO_CLIENT_ID = os.environ.get('CF_DIGIO_CLIENT_ID')
CF_DIGIO_CLIENT_SECRET = os.environ.get('CF_DIGIO_CLIENT_SECRET')
CF_DIGIO_WORKFLOW = os.environ.get('CF_DIGIO_WORKFLOW')
CF_DIGIO_VKYC_WORKFLOW = os.environ.get('CF_DIGIO_VKYC_WORKFLOW')
CF_DIGIO_NON_SOLAR_VKYC_WORKFLOW = os.environ.get('CF_DIGIO_NON_SOLAR_VKYC_WORKFLOW', 'Non-Solar CREDITFAIRE WORKFLOW TWO WAY')
DIGIO_TWO_WAY_VKYC = 3
TOKEN_URL = BASE_URL + '/user/auth/generate_token'
REDIRECTION_URL = os.environ.get('DIGIO_REDIRECTION_URL')
KYC_REQUEST_EXPIRY = os.environ.get('KYC_REQUEST_EXPIRY')
P2P_DIGIO_CLIENT_ID = os.environ.get('P2P_DIGIO_CLIENT_ID')
P2P_DIGIO_CLIENT_SECRET = os.environ.get('P2P_DIGIO_CLIENT_SECRET')
P2P_DIGIO_WORKFLOW = os.environ.get('P2P_DIGIO_WORKFLOW')

# Vendor
VENDORS = os.environ.get('VENDORS').split(',') if ',' in os.environ.get('VENDORS') else [os.environ.get('VENDORS')]

DE_DUPE_CHECK = True if os.environ.get('DE_DUPE_CHECK') == 'True' else False

SQLALCHEMY_TRACK_MODIFICATIONS = False
MIDDLEWARE_CONFIG = {
    "DATABASE": "vendor_api_credentials",
    "QUERY": {
      "BASIC_AUTH": "select * from vendor_api_credentials where `key` = %s and secret = %s",
      "JWT_AUTH": "select * from vendor_api_credentials where vendor_id = %s"
    },
    "IP_WHITELIST": False,
    "BASIC_KEY": ["CLIENT_ID"],
    "BASIC_SECRET": ["CLIENT_SECRET"],
    "JWT_KEY": ["SECRET_KEY"]
}

#BUGSNAG
BUGSNAG_KEY = os.environ.get('BUGSNAG_KEY')

FRONT_END_URL = os.environ.get('FRONT_END_URL')

NO_TOUCH_URL = os.environ.get('NO_TOUCH_URL')
SOLAR_URL = os.environ.get("SOLAR_URL")
#Category Ids

SOLAR_CATEGORY_ID = os.environ.get('SOLAR_CATEGORY_ID')
SOLAR_CATEGORIES = [
    int(x.strip())
    for x in os.environ.get('SOLAR_CATEGORY_IDS', '6,24,52').split(',')
    if x.strip().isdigit()
]
if SOLAR_CATEGORY_ID and str(SOLAR_CATEGORY_ID).isdigit() and int(SOLAR_CATEGORY_ID) not in SOLAR_CATEGORIES:
    SOLAR_CATEGORIES.append(int(SOLAR_CATEGORY_ID))
MNRE_MERCHANT = os.environ.get('MNRE_MERCHANT')

DOC_PATH = {
    'PAN': 'pan_card',
    'SECURITY_CHEQUE': 'security_cheques',
    'APPLICANT_PHOTO': 'customer_photo',
    'APPLICANT_AADHAAR_FRONT': 'aadhar_card',
    'APPLICANT_AADHAAR_BACK': 'aadhar_card_back',
    'ELECTRICITY_BILL': 'electricity_bill',
    'GAS_BILL': 'gas_bill',
    'PASSPORT': 'passport',
    'BANK_STATEMENT': 'bank_statement',
    'BANK_STATEMENT_2': 'bank_statement_2',
    'BANK_STATEMENT_3': 'bank_statement_3',
    'BANK_STATEMENT_4': 'bank_statement_4',
    'BANK_STATEMENT_5': 'bank_statement_5',
    'BANK_STATEMENT_6': 'bank_statement_6',
    'SALARY_SLIP': 'salary_slip',
    'ITR': 'itr',
    'MCA': 'mca',
    'UTILITY_BILL_VALIDATION': 'utilitybillvalidation',
    'CPV': 'cpv',
    'RENT_AGREEMENT': 'rent_agreement',
    'SALE_DEED': 'sale_deed',
    'SHOP_ACT': 'shop_act',
    'GST_CERTIFICATE': 'gst_certificate',
    'CO_APPLICANT_BANK_STATEMENT': 'co_applicant_bank_statement',
    'CO_APPLICANT_PAN': 'co_applicant_pan_card',
    'CO_APPLICANT_AADHAAR_FRONT': 'co_applicant_aadhar_card',
    'CO_APPLICANT_AADHAAR_BACK': 'co_applicant_aadhar_card_back',
    'CO_APPLICANT_PHOTO': 'co_applicant_customer_photo',
    'PASSBOOK': 'passbook_copy',
    'OTH': 'other',
    'PASSPORT_FRONT': 'passport_front',
    'PASSPORT_BACK': 'passport_back',
    'DRIVING_LICENSE': 'driving_license',
    'VOTAR_ID_FRONT': 'votar_id_front',
    'VOTAR_ID_BACK': 'votar_id_back',
    'SELFIE': 'selfie',
    'LOAN_AGREEMENT_ESIGN': 'loan_agreement_esign',
    'AADHAR_CARD': 'aadhar_card',
    'AADHAR_ZIP': 'aadhar_zip',
    'AADHAR_XML': 'aadhar_xml',
    'EPF_REPORT_KARZA': 'epf report karza',
    'EPF_REPORT': 'epf report',
    'VIVRITI_CAM_REPORT': 'vivriti_emi_cam_report',
    'UTKARSH_CAM_REPORT': 'utkarsh_emi_cam_report',
    'CAM_REPORT': 'emi_cam_report'
}

DOC_FORMAT = ['jpg', 'gif', 'mp4', 'jpeg', 'png', 'bmp', 'tif', 'tiff', 'xlsx', 'xls', 'pdf', 'txt', 'odt', 'xml', 'zip', 'csv']

# Database details
DATABASES = {
    "default": {
        "HOST": os.environ.get('DB_HOST'),
        "PASSWORD": os.environ.get('DB_PASSWORD'),
        "PORT": os.environ.get('DB_PORT'),
        "NAME": os.environ.get('DB_NAME'),
        "USER": os.environ.get('DB_USER'),
        "MAX_CONNECTION_POOL": "5",
    }
}

KARZA_ELECTRICTY_PROVIDER = {
    "Southern Power Distribution Company of Andhra Pradesh Limited": "APSPDCL",
    "Eastern Power Distribution Company of Andhra Pradesh Limited": "APEPDCL",
    "Assam Power Distribution Company Limited": "APDCL ",
    "North Bihar Power Distribution Company Limited": "NBPDCL",
    "South Bihar Power Distribution Company Limited": "SBPDCL",
    "Calcutta Electric Supply Corporation Limited": "CESC",
    "Chandigarh Electricity Department": "CH_ELEC",
    "Chhattisgarh State Power Distribution Company Limited": "CSPDCL",
    "Daman and Diu Electricity Department": "DAMAN_DIU",
    "Tata Power Delhi Distribution": "TATA_DL",
    "BSES Yamuna Power Ltd / BSES Rajdhani Power Ltd": "BSES_DL",
    "Goa Electricity- for Tisvadi, Ponda & Verna": "GOA_ELEC",
    "Goa Electricity- for others": "UPAY_GOA",
    "Uttar Gujarat VIJ Company Ltd.": "UGVCL",
    "Pashchim Gujarat VIJ Company Ltd.": "PGVCL",
    "Madhya Gujarat VIJ Company Limited": "MGVCL",
    "Dakshin Gujarat VIJ Company Limited": "DGVCL",
    "Torrent Power Limited - Ahmedabad": "TORRENT_AHD",
    "Torrent Power Limited - Surat": "TORRENT_SURAT",
    "Torrent Power Limited - Agra": "TORRENT_AGRA",
    "Torrent Power Limited - Bhiwandi": "TORRENT_BHIWANDI",
    "Torrent Power Limited - Dahej": "TORRENT_DAHEJ",
    "Dakshin Haryana Bijli Vitran Nigam": "DHBVN",
    "Uttar Haryana Bijli Vitran Nigam": "UHBVN",
    "Himachal Pradesh State Electricity Board Ltd": "HPSEB",
    "Mangalore Electricity Supply Company Limited": "MESCOM",
    "Bangalore Electricity Supply Company Ltd": "BESCOM",
    "Chamundeshwari Electricity Supply Company Limited Mysore": "CESCOM",
    "Gulbarga Electricity Supply Company Limited": "GESCOM",
    "Hubli Electricity Supply Company Limited": "HESCOM",
    "Kerala State Electricity Board": "KERALA",
    "Madhya Pradesh Paschim Kshetra Vidyut Vitran Company Limited": "MPWZ",
    "Madhya Pradesh Madhya Kshetra Vidyut Vitran Company Limited": "MPCZ",
    "Madhya Pradesh Poorv Kshetra Vidyut Vitran Company Limited": "MPEZ",
    "TATA-Power - Mumbai": "TATA_MUMBAI",
    "MAHAVITARAN-Maharashtra State Electricity Distribution Co. Ltd (MSEDCL)": "MAHAVITRAN",
    "Brihanmumbai Electric Supply & Transport Undertaking for Greater Mumbai (BEST_MH)": "BEST_MH",
    "Meghalaya Energy Corporation Limited": "MeECL",
    "Supply Company of Orissa Limited (North, South, West,Central)": "ORISSA",
    "Punjab State Power Corporation Limited": "PSPCL",
    "Jaipur Vidhyut Vitran Nigam Ltd": "JAIPUR",
    "Ajmer Vidhyut Vitran Nigam Ltd": "AJMER",
    "Jodhpur Vidhyut Vitran Nigam Ltd": "JODHPUR",
    "Tamil Nadu Generation and Distribution Corporation Limited - Chennai_North": "CHENNAI_NORTH",
    "Tamil Nadu Generation and Distribution Corporation Limited - Villupuram": "VILLUPURAM",
    "Tamil Nadu Generation and Distribution Corporation Limited - Coimbatore": "COIMBATORE",
    "Tamil Nadu Generation and Distribution Corporation Limited - Erode": "ERODE",
    "Tamil Nadu Generation and Distribution Corporation Limited - Madurai": "MADURAI",
    "Tamil Nadu Generation and Distribution Corporation Limited - Trichy": "TRICHY",
    "Tamil Nadu Generation and Distribution Corporation Limited - Tirunelvel": "TIRUNELVEL",
    "Tamil Nadu Generation and Distribution Corporation Limited - Vellore": "VELLORE",
    "Tamil Nadu Generation and Distribution Corporation Limited - Chennai_South": "CHENNAI_SOUTH",
    "The Southern Power Distribution Company of Telangana Limited": "TSSPCL",
    "Tripura State Electricity Corporation Limited": "TRIPURA",
    "Kanpur Electricity Supply Company": "KESCO",
    "UP Vidyut Vitran Nigam Limited (All Zones)": "UPPCL",
    "WEST BENGAL STATE ELECTRICITY DISTRIBUTION COMPANY LIMITED": "WBENGAL",
    "Other": "OTH"
}
inverted_dict = {k: j for j, k in KARZA_ELECTRICTY_PROVIDER.items()}

KARZA_UP_DISTRICT = ["Agra","Aligarh","Ambedkar Nagar","Amethia","Amroha","Auraiya","Ayodhya","Azamgarh","Bagpat",
                     "Bahraich","Ballia","Balrampur","Banda","Barabanki","Bareilly","Basti","Bijnor","Budaun",
                     "Bulandshahr","Chandauli","Chitrakoot","Deori","Etah","Etawa","Farrukhabad","Fatehpur",
                     "Firozabad","Gautam Buddha Nagar","Ghaziabad","Ghazipur","Gonda","Gorakhpur","Hamirpur",
                     "Hapur District","Hardoi","Hathras","Jalaun","Jaunpur","Jhansi","Kannauj","Kanpur Dehat",
                     "Kanpur Nagar","Kasganj","Kaushambi","Kushinagar","Lakhimpur Kheri","Lalitpur","Lucknow",
                     "Maharajganj","Mahoba","Mainpuri","Mathura","Mau","Meerut","Mirzapur","Moradabad","Muzaffarnagar",
                     "Pilibhit","Pratapgarh","PrayagRaj","Raebareli ","Rampur","Saharanpur","Sambhal","Sant Kabir Nagar",
                     "Sant Ravidas Nagar Bhadohi","Shahjahanpur","Shamli","Shravasti","Siddharthnagar","Sitapur",
                     "Sonbhadra","Sultanpur","Unnao","Varanasi"]

