# src/config/settings.py
"""
Configuraciones globales del sistema - MVP v1.0

Este módulo centraliza todas las configuraciones del sistema:
- Variables de entorno
- Configuración de base de datos
- Parámetros de procesamiento
- Configuración de logging
"""

import os
from dotenv import load_dotenv

# Cargar variables de entorno
load_dotenv()

# Configuración de Database
DB_CONFIG = {
    'host': os.getenv('DB_HOST', 'localhost'),
    'port': int(os.getenv('DB_PORT', 3306)),
    'user': os.getenv('DB_USER', 'root'),
    'password': os.getenv('DB_PASSWORD', ''),
    'retry_attempts': int(os.getenv('DB_RETRY_ATTEMPTS', 3)),
    'retry_delay': int(os.getenv('DB_RETRY_DELAY', 5))
}

# Configuración de Logging
LOG_LEVEL = os.getenv('LOG_LEVEL', 'INFO')
LOG_FORMAT = '%(asctime)s [%(levelname)s] %(message)s'
LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'

# Configuración de Procesamiento
PROCESS_INTERVAL = 15  # minutos
BATCH_SIZE = 1000
MAX_QUEUE_SIZE = 10000

# Configuración de Validación de Datos
TEMP_MIN = float(os.getenv('TEMP_MIN', -40.0))
TEMP_MAX = float(os.getenv('TEMP_MAX', 85.0))
MAX_FUTURE_TIME = 300  # segundos máximos permitidos en el futuro

# Timeouts y Delays
DB_TIMEOUT = int(os.getenv('DB_TIMEOUT', 30))  # segundos
PROCESS_TIMEOUT = int(os.getenv('PROCESS_TIMEOUT', 60))  # segundos

# Paths
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
LOG_DIR = os.path.join(os.path.dirname(BASE_DIR), 'logs')

# Crear directorio de logs si no existe
os.makedirs(LOG_DIR, exist_ok=True)