-- ============================================================
--  Migración 04 · Normalizar orden_salida / orden_traslado
--  Fecha: 2026-08-28
-- ------------------------------------------------------------
--  Ambas tablas están vacías y no tienen modelo/controlador/ruta
--  (andamiaje del módulo de salidas, pendiente). Cambios seguros:
--  tipar `estado` como ENUM y añadir las FK de usuario.
--  No se reordenan columnas ni se eliminan las tablas.
-- ============================================================
USE tinsa_db;

-- ── orden_salida ────────────────────────────────────────────
ALTER TABLE orden_salida
  MODIFY estado ENUM('borrador','aprobada','despachada','cancelada')
         NOT NULL DEFAULT 'borrador';

ALTER TABLE orden_salida
  ADD CONSTRAINT fk_orden_salida_usuario_creo
    FOREIGN KEY (id_usuario_creo)     REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT fk_orden_salida_usuario_aprobo
    FOREIGN KEY (id_usuario_aprobo)   REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT fk_orden_salida_usuario_despacho
    FOREIGN KEY (id_usuario_despacho) REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT fk_orden_salida_usuario_modifico
    FOREIGN KEY (usuario_modifico)    REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE;

-- ── orden_traslado ──────────────────────────────────────────
ALTER TABLE orden_traslado
  MODIFY estado ENUM('pendiente','despachada','recibida','cancelada')
         NOT NULL DEFAULT 'pendiente';

ALTER TABLE orden_traslado
  ADD CONSTRAINT fk_orden_traslado_usuario_creo
    FOREIGN KEY (id_usuario_creo)   REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE,
  ADD CONSTRAINT fk_orden_traslado_usuario_aprobo
    FOREIGN KEY (id_usuario_aprobo) REFERENCES usuarios(id_usuario) ON DELETE SET NULL ON UPDATE CASCADE;
