# src/db/queries.py
"""
Módulo de consultas SQL.

Centraliza todas las consultas SQL del sistema, proporcionando:
- Consultas parametrizadas
- Optimización de rendimiento
- Gestión de índices
- Consultas de agregación
- Consultas de actualización

La separación de las consultas en este módulo facilita el mantenimiento
y la optimización del acceso a datos.
"""

# Consultas de sensores
QUERY_SENSORS = """
SELECT 
    m.idModbus, 
    m.dmac,
    m.estado,
    e.idEntrada,
    e.descripcion
FROM modbus m
JOIN entradas e ON e.idModbus = m.idModbus
WHERE m.estado = 1 
AND m.dmac IS NOT NULL
"""

# Consultas de mediciones
QUERY_UNPROCESSED = """
SELECT 
    b.id, 
    m.dmac, 
    b.temp/10.0 as temp, 
    b.fecha,
    e.idEntrada
FROM bandeja_blue b
JOIN modbus m ON b.dmac = m.dmac
JOIN entradas e ON e.idModbus = m.idModbus
WHERE b.procesado_el IS NULL
"""

# Consultas de estadísticas
QUERY_STATS = """
SELECT 
    DATE_FORMAT(fecha, '%Y-%m-%d') as dia,
    COUNT(*) as total_mediciones,
    AVG(temp) as temp_promedio,
    MIN(temp) as temp_min,
    MAX(temp) as temp_max,
    STD(temp) as temp_std
FROM registros
WHERE fecha BETWEEN %s AND %s
GROUP BY dia
ORDER BY dia
"""