"""
Configuration module for the application
"""
import os
from dotenv import load_dotenv
from urllib.parse import quote_plus

# Load environment variables
load_dotenv()

# Try to import encryption utilities
try:
    import sys
    sys.path.append(os.path.dirname(os.path.abspath(__file__)))
    from app.utils.encryption import decrypt_password, is_encrypted
except ImportError:
    # Fallback functions if encryption module is not available
    def decrypt_password(encrypted_password, key_phrase='babagamma'):
        return encrypted_password
    def is_encrypted(text, key_phrase='babagamma'):
        return False

def get_decrypted_env_var(var_name, default=''):
    """Get an environment variable and decrypt it if necessary"""
    value = os.getenv(var_name, default)
    if value:
        try:
            if is_encrypted(value, 'babagamma'):
                return decrypt_password(value, 'babagamma')
        except Exception:
            pass
    return value

# Admin configuration using environment variables
ADMIN_CONFIG = {
    'SECRET_KEY': os.getenv('SECRET_KEY', 'admin-secret-key-change-this-in-production'),
    'ADMIN_USERNAME': 'admin',
    'ADMIN_PASSWORD': get_decrypted_env_var('ADMIN_PASSWORD', 'AdminPassword123!'),
    'DATABASE_URL': f"postgresql://{os.getenv('DATABASE_USER', 'postgres')}:{quote_plus(get_decrypted_env_var('DATABASE_PASSWORD'))}@{os.getenv('DATABASE_HOST', 'localhost')}:{os.getenv('DATABASE_PORT', '5432')}/{os.getenv('DATABASE_NAME', 'bookbeach')}",
    'GOOGLE_MAPS_API_KEY': os.getenv('GOOGLE_MAPS_API_KEY', 'your-google-maps-api-key')
}

def send_email(to_email, subject, body):
    """Send email using the email service"""
    try:
        from email_service import email_service
        return email_service.send_email(to_email, subject, body)
    except ImportError:
        print("Email service not available")
        return False
    except Exception as e:
        print(f"Error sending email: {e}")
        return False