-- ============================================================ -- Migration: 20260302_lab_04_domicilios -- Módulo Administrativo: Servicios a domicilio -- ============================================================ CREATE TABLE IF NOT EXISTS `lab_domicilios` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `orden_id` INT(11) DEFAULT NULL COMMENT 'FK a lab_ordenes_medicas.id', `paciente_id` INT(11) NOT NULL COMMENT 'FK a lab_pacientes.id', -- Datos del domicilio `direccion` TEXT NOT NULL, `ciudad` VARCHAR(100) DEFAULT NULL, `barrio` VARCHAR(100) DEFAULT NULL, `indicaciones_dir` TEXT DEFAULT NULL COMMENT 'Referencia de la dirección', `fecha_programada` DATE NOT NULL, `hora_programada` TIME DEFAULT NULL, `tipo_servicio` VARCHAR(100) DEFAULT NULL COMMENT 'Tipo de toma de muestra', -- Estado del domicilio `estado` ENUM( 'programado', 'confirmado', 'en_camino', 'en_domicilio', 'completado', 'cancelado', 'reprogramado' ) NOT NULL DEFAULT 'programado', `motivo_cancelacion` TEXT DEFAULT NULL, `fecha_reprogramada` DATE DEFAULT NULL, -- Resultados `hora_llegada` TIME DEFAULT NULL, `hora_salida` TIME DEFAULT NULL, `observaciones` TEXT DEFAULT NULL, `muestras_tomadas` TEXT DEFAULT NULL COMMENT 'Lista de muestras obtenidas', -- Gestión `creado_por` INT(11) DEFAULT NULL COMMENT 'FK a admin_users.id', `notas_admin` TEXT DEFAULT NULL, `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `idx_dom_orden` (`orden_id`), KEY `idx_dom_paciente` (`paciente_id`), KEY `idx_dom_fecha` (`fecha_programada`), KEY `idx_dom_estado` (`estado`), KEY `idx_dom_creado` (`creado_por`), CONSTRAINT `fk_dom_orden` FOREIGN KEY (`orden_id`) REFERENCES `lab_ordenes_medicas` (`id`) ON DELETE SET NULL, CONSTRAINT `fk_dom_paciente` FOREIGN KEY (`paciente_id`) REFERENCES `lab_pacientes` (`id`) ON DELETE RESTRICT, CONSTRAINT `fk_dom_creado` FOREIGN KEY (`creado_por`) REFERENCES `admin_users` (`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Servicios a domicilio programados';