from decouple import config

class Config: 
  
    # Database settings 
    MONGODB_SETTINGS = { 
        'db': 'pige',  # Change to your MongoDB database name
        'host': 'mongo-database',  # Change to your MongoDB host
        'port': 27017,  # Change to your MongoDB port
    }

    # Security settings 
    SECRET_KEY = config('SECRET_KEY', default='hMB2o~H`O7:i#5&hd`AQb#JU0YOe~wjQ', cast=str)
    JWT_SECRET_KEY =  config("JWT_SECRET_KEY",default="",cast=str)
    JWT_ACCESS_TOKEN_EXPIRES =  config("JWT_ACCESS_TOKEN_EXPIRED",default=3600,cast=int) 
    JWT_REFRESH_TOKEN_EXPIRES = config("JWT_REFRESH_TOKEN_EXPIRES",default=2592000,cast=int)

    # Email settings
    MAIL_SERVER = config('MAIL_SERVER', default='smtp.gmail.com')
    MAIL_PORT = config('MAIL_PORT', default=587, cast=int)
    MAIL_USERNAME = config('MAIL_USERNAME', default='brahimbellahcen1996@gmail.com')
    MAIL_PASSWORD = config('MAIL_PASSWORD', default='wewqkcxkkuwjnffy')
    MAIL_USE_TLS = config('MAIL_USE_TLS', default=True, cast=bool)
    MAIL_USE_SSL = config('MAIL_USE_SSL', default=False, cast=bool)
    MAIL_DEFAULT_SENDER = config('MAIL_USERNAME', default='brahimbellahcen1996@gmail.com')

    # Logging settings
    LOG_FILE="app.log"

class TestingConfig(Config):
    TESTING = True
    DEBUG = True
    MONGODB_SETTINGS = {
        'db': config('MONGODB_DB', default='pige_testing', cast=str),
        'host': config('MONGODB_HOST', default='mongo-database', cast=str),
        # 'username': config('MONGODB_HOST', default='', cast=str) ,
        # 'password': config('MONGODB_PASSWORD', default='', cast=str),
        'authentication_source': config('MONGODB_AUTH_SOURCE', default='admin', cast=str),
        'connect': config('MONGODB_CONNECT', default=False, cast=bool) 
    } 