import os from datetime import timedelta class Config: """Base configuration for Flask app""" SWAGGER_URL = os.getenv("SWAGGER_URL", "/documentation") API_URL = os.getenv("API_URL", "/swagger.json") DEBUG = True BASIC_AUTH_USERNAME = os.environ.get("BASIC_AUTH_USERNAME", "user") BASIC_AUTH_PASSWORD = os.environ.get("BASIC_AUTH_PASSWORD", "password") # Database Configuration DATABASE_USER = os.environ.get("DATABASE_USER") DATABASE_PASSWORD = os.environ.get("DATABASE_PASSWORD") DATABASE_HOST = os.environ.get("DATABASE_HOST") DATABASE_PORT = os.environ.get("DATABASE_PORT", 10532) DATABASE_NAME = os.environ.get("DATABASE_NAME", "firstadvancedev") DATABASE_SID = os.environ.get("DATABASE_SID", "FREE") DNS = f"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={DATABASE_HOST})(PORT={DATABASE_PORT}))(CONNECT_DATA=(SID={DATABASE_SID})))" # ECO Database Configuration ECO_DATABASE_USER = os.environ.get("ECO_DATABASE_USER", "eco_user") ECO_DATABASE_PASSWORD = os.environ.get("ECO_DATABASE_PASSWORD", "eco_pass") ECO_DATABASE_HOST = os.environ.get("ECO_DATABASE_HOST", "localhost") ECO_DATABASE_PORT = os.environ.get("ECO_DATABASE_PORT", 5432) ECO_DATABASE_NAME = os.environ.get("ECO_DATABASE_NAME", "eco_db") # Database Connection # SQLALCHEMY_DATABASE_URI = f"postgresql+psycopg2://{DATABASE_USER}:{DATABASE_PASSWORD}@{DATABASE_HOST}:{DATABASE_PORT}/{DATABASE_NAME}" SQLALCHEMY_DATABASE_URI = ( f"oracle+oracledb://{DATABASE_USER}:{DATABASE_PASSWORD}@{DNS}" ) SQLALCHEMY_BINDS = { "eco": f"postgresql+psycopg2://{ECO_DATABASE_USER}:{ECO_DATABASE_PASSWORD}@{ECO_DATABASE_HOST}:{ECO_DATABASE_PORT}/{ECO_DATABASE_NAME}" } SQLALCHEMY_TRACK_MODIFICATIONS = False JWT_SECRET_KEY = os.getenv("JWT_SECRET_KEY", "secret-key") JWT_ACCESS_TOKEN_EXPIRES = os.getenv("JWT_ACCESS_TOKEN_EXPIRES", timedelta(hours=1)) JWT_REFRESH_TOKEN_EXPIRES = os.getenv( "JWT_REFRESH_TOKEN_EXPIRES", timedelta(days=30) ) # KAFKA_BROKER = 'dev-events.simbrellang.net:9085' KAFKA_BROKER = os.getenv("KAFKA_BROKER", "dev-events.simbrellang.net:9085") # SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv("SIMBRELLA_ENDPOINT_RAC_CHECKS", "RACCheck") VALID_APP_ID = os.getenv("SIMBRELLA_APP_ID", "app1") VALID_API_KEY = os.getenv("SIMBRELLA_API_KEY", "test-api-key-12345") SIMBRELLA_BASE_URL = os.getenv("SIMBRELLA_BASE_URL", "http://127.0.0.1:6337") SIMBRELLA_ENDPOINT_RAC_CHECKS = os.getenv( "SIMBRELLA_ENDPOINT_RAC_CHECKS", "api/rac-check" ) RAC_RESULT_accountStatus = os.environ.get("RAC_RESULT_accountStatus", "true") RAC_RESULT_bvnValidated = os.environ.get("RAC_RESULT_bvnValidated", "true") RAC_RESULT_creditBureauCheck = os.environ.get( "RAC_RESULT_creditBureauCheck", "false" ) RAC_RESULT_crmsCheck = os.environ.get("RAC_RESULT_crmsCheck", "true") RAC_RESULT_hasLien = os.environ.get("RAC_RESULT_hasLien", "false") RAC_RESULT_hasPastDueLoan = os.environ.get("RAC_RESULT_hasPastDueLoan", "false") RAC_RESULT_hasSalaryAccount = os.environ.get("RAC_RESULT_hasSalaryAccount", "true") RAC_RESULT_isWhitelisted = os.environ.get("RAC_RESULT_isWhitelisted", "true") RAC_RESULT_noBouncedCheck = os.environ.get("RAC_RESULT_noBouncedCheck", "true") rac_true_rules = [ "rule1_45day_sal", "rule2_2m_sal", "rule3_no_bounced_check", "rule4_current_loan_payments", "rule5_no_past_due_fadv_loan", "rule6_no_past_due_other_loan", "rule7_consistent_salary_amount", "rule8_whitelisted", "rule9_regular_account", "rule10_bvn_validation", "rule11_CRC_no_delinquency", "rule12_CRMS_no_delinquency", "rule13_BVN_ignore", "rule14_no_lien", "rule15_null_ignore", ] rac_false_rules = [] rac_salary_payments = [ "salarypaymenT_1", "salarypaymenT_2", "salarypaymenT_3", "salarypaymenT_4", "salarypaymenT_5", "salarypaymenT_6", ] MAIL_SERVER = os.getenv("MAIL_SERVER", "smtp.zoho.com") MAIL_PORT = 587 MAIL_USERNAME = os.getenv("MAIL_USERNAME", "firstadvance@dynamikservices.tech") MAIL_PASSWORD = os.getenv("MAIL_PASSWORD") MAIL_USE_TLS = True MAIL_USE_SSL = False MAIL_DEFAULT_SENDER = ("FirstAdvance", "firstadvance@dynamikservices.tech") MAIL_RECEIVER = os.getenv("MAIL_RECEIVER", "vdagbue@gmail.com") settings = Config()