-- ═══════════════════════════════════════════════════════════════════════
-- 2026-10-28_03 · Preferencias de notificación que sí funcionan
-- ═══════════════════════════════════════════════════════════════════════
-- Decisión del usuario: de las 4 preferencias de Ajustes se implementan
-- "Stock bajo" y "Resumen semanal"; "Movimientos de bodega" e "Inicios de
-- sesión nuevos" se quitan (nunca hicieron nada).
-- · alerta_stock_bajo: productos/bodega ya avisados por estar bajo el mínimo.
--   Se borra la fila cuando el stock se recupera, para volver a avisar si baja
--   otra vez (TareasFrecuentes::avisarStockBajo). Tabla aparte para no tocar
--   existencia_bodega (su actualizado_en lo mueve el trigger del Kardex).
--
-- Respaldo: backups/tinsa_db_pre-preferencias-notif_2026-10-28.sql
-- Reversa:  database/rollback/2026-10-28_03_preferencias_notificacion.down.sql
-- ═══════════════════════════════════════════════════════════════════════

USE tinsa_db;

CREATE TABLE alerta_stock_bajo (
  id_producto   INT UNSIGNED NOT NULL,
  id_bodega     INT UNSIGNED NOT NULL,
  notificado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id_producto, id_bodega),
  CONSTRAINT fk_asb_producto FOREIGN KEY (id_producto) REFERENCES producto (id) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT fk_asb_bodega   FOREIGN KEY (id_bodega)   REFERENCES bodega (id)   ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE usuarios
  DROP COLUMN notif_movimientos,
  DROP COLUMN notif_login_nuevo;
