-- Migración: catálogo "Tipo de servicio" + columna en cases
-- Ejecutar en orden. Probar primero en un ambiente de prueba.

-- 1) Catálogo
CREATE TABLE IF NOT EXISTS tipos_servicio (
  id INT AUTO_INCREMENT PRIMARY KEY,
  nombre VARCHAR(100) NOT NULL,
  activo TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

INSERT INTO tipos_servicio (id, nombre) VALUES
  (1, 'Mantenimiento Locativo'),
  (2, 'Sondeo'),
  (3, 'Sondeo Garantía'),
  (4, 'Transporte'),
  (5, 'Mano de Obra')
ON DUPLICATE KEY UPDATE nombre = VALUES(nombre);

-- 2) Columna en cases: nullable primero para poder rellenar los casos existentes
ALTER TABLE cases ADD COLUMN id_tipo_servicio INT NULL AFTER sede_id;

-- 3) Todos los casos creados antes de esta versión quedan como "Mantenimiento Locativo"
UPDATE cases SET id_tipo_servicio = 1 WHERE id_tipo_servicio IS NULL;

-- 4) De aquí en adelante es obligatorio (con 1 como default de respaldo)
ALTER TABLE cases MODIFY id_tipo_servicio INT NOT NULL DEFAULT 1;

-- 5) Integridad referencial
ALTER TABLE cases
  ADD CONSTRAINT fk_cases_tipo_servicio
  FOREIGN KEY (id_tipo_servicio) REFERENCES tipos_servicio(id);
