-- ==========================================
-- Starter Kit RKM — Optimización de índices
-- Ejecutar UNA VEZ sobre BD existente
-- ==========================================

-- 1) notifications: acelerar latestForUser()
--    La query ordena por id DESC filtrando por user_id IS NULL OR user_id = ?
--    Un índice compuesto cubre el filtro + orden
ALTER TABLE notifications
  ADD INDEX idx_user_id_created (user_id, id DESC);

-- 2) users: acelerar login (getByEmail con status check implícito)
--    AuthService ya valida status=1 en PHP, pero si se consulta por status:
ALTER TABLE users
  ADD INDEX idx_status (status);

-- 3) users: cubrir búsqueda por email + status (si se consulta en DB directamente)
ALTER TABLE users
  ADD INDEX idx_email_status (email, status);

-- 4) mail_queue: índices básicos para procesar cola
ALTER TABLE mail_queue
  ADD INDEX idx_status_created (status, created_at);

-- 5) audit_logs: acelerar consultas por módulo/acción
ALTER TABLE audit_logs
  ADD INDEX idx_module_action (module, action);

-- 6) notifications: si se consulta por canal frecuentemente
ALTER TABLE notifications
  ADD INDEX idx_channel (channel);
