"""
config/settings/production.py
================================
Configuración para entorno de PRODUCCIÓN (cPanel).
- DEBUG desactivado
- HTTPS obligatorio
- Headers de seguridad activados
- MySQL real
- Emails SMTP reales
- Logs a archivo
"""

from .base import *
from decouple import config

# ─────────────────────────────────────────────────────────────
# SEGURIDAD — Debug SIEMPRE False en producción
# ─────────────────────────────────────────────────────────────
DEBUG = False
ALLOWED_HOSTS = config('ALLOWED_HOSTS', cast=lambda v: [s.strip() for s in v.split(',')])

# ─────────────────────────────────────────────────────────────
# HTTPS — Headers de seguridad obligatorios
# ─────────────────────────────────────────────────────────────
SECURE_BROWSER_XSS_FILTER       = True
SECURE_CONTENT_TYPE_NOSNIFF     = True
SECURE_HSTS_SECONDS             = 31536000   # 1 año
SECURE_HSTS_INCLUDE_SUBDOMAINS  = True
SECURE_HSTS_PRELOAD             = True
SECURE_SSL_REDIRECT             = True       # Redirigir HTTP → HTTPS
SESSION_COOKIE_SECURE           = True       # Cookie solo por HTTPS
CSRF_COOKIE_SECURE              = True
X_FRAME_OPTIONS                 = 'DENY'

# ─────────────────────────────────────────────────────────────
# BASE DE DATOS — MySQL real desde .env
# Heredado de base.py pero lo documentamos aquí para claridad
# ─────────────────────────────────────────────────────────────
# DATABASES ya está configurado en base.py con decouple

# ─────────────────────────────────────────────────────────────
# EMAILS — SMTP real para notificaciones
# ─────────────────────────────────────────────────────────────
EMAIL_BACKEND  = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST     = config('EMAIL_HOST')
EMAIL_PORT     = config('EMAIL_PORT', cast=int, default=587)
EMAIL_USE_TLS  = True
EMAIL_HOST_USER     = config('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')
DEFAULT_FROM_EMAIL  = config('DEFAULT_FROM_EMAIL', default='noreply@eduplay.cl')

# ─────────────────────────────────────────────────────────────
# CHANNELS — Redis en producción para WebSockets escalables
# Si el plan de hosting no tiene Redis, queda InMemoryChannelLayer
# ─────────────────────────────────────────────────────────────
REDIS_URL = config('REDIS_URL', default=None)
if REDIS_URL:
    CHANNEL_LAYERS = {
        'default': {
            'BACKEND': 'channels_redis.core.RedisChannelLayer',
            'CONFIG': {'hosts': [REDIS_URL]},
        }
    }
    # También usar Redis como caché
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.redis.RedisCache',
            'LOCATION': REDIS_URL,
        }
    }
