from .base import *
import os


def _first_env(*keys, default=''):
    for key in keys:
        value = os.getenv(key)
        if value is not None and str(value).strip() != '':
            return value
    return default


def _csv_env_local(var_name, default=''):
    raw = os.getenv(var_name, default)
    return [item.strip() for item in raw.split(',') if item and item.strip()]

# Production settings
DEBUG = False

ALLOWED_HOSTS = _csv_env_local(
    'ALLOWED_HOSTS',
    'api.truewaveindia.com,truewaveindia.com,www.truewaveindia.com,localhost,127.0.0.1'
)

# Database: use MySQL in production
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        # "ENGINE": "custom_mysql_backend",   # 🔴 restore this if needed
        "NAME": _first_env("DB_NAME", "MYSQL_DATABASE", default="viralpe_db"),
        "USER": _first_env("DB_USER", "MYSQL_USER", default="viralpe_user"),
        "PASSWORD": _first_env("DB_PASSWORD", "MYSQL_PASSWORD", default=""),
        "HOST": _first_env("DB_HOST", "MYSQL_HOST", default="localhost"),
        "PORT": _first_env("DB_PORT", "MYSQL_PORT", default="3306"),
        "OPTIONS": {
            # "init_command": "SET sql_mode='STRICT_TRANS_TABLES'; SET NAMES utf8mb4",
            "init_command": (
                "SET sql_mode="
                "'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,"
                "ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
            ),
            "charset": "utf8mb4",
        },
        "TEST": {
            "CHARSET": "utf8mb4",
            "COLLATION": "utf8mb4_unicode_ci",
        },
    },
    # --- Postgres config (keep for future use) ---
    # "postgres": {
    #     "ENGINE": "django.db.backends.postgresql",
    #     "NAME": os.getenv('POSTGRES_DB'),
    #     "USER": os.getenv('POSTGRES_USER'),
    #     "PASSWORD": os.getenv('POSTGRES_PASSWORD'),
    #     "HOST": os.getenv('POSTGRES_HOST', 'localhost'),
    #     "PORT": os.getenv('POSTGRES_PORT', '5432'),
    # },
}

# Security hardening for production
SECURE_SSL_REDIRECT = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
USE_X_FORWARDED_HOST = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = int(os.getenv('SECURE_HSTS_SECONDS', '31536000'))
SECURE_HSTS_INCLUDE_SUBDOMAINS = os.getenv('SECURE_HSTS_INCLUDE_SUBDOMAINS', 'True').lower() in ('1', 'true', 'yes')
SECURE_HSTS_PRELOAD = os.getenv('SECURE_HSTS_PRELOAD', 'False').lower() in ('1', 'true', 'yes')
