-- ============================================================
-- Migration: 20260302_lab_01_pacientes
-- Módulo Administrativo: Pacientes del laboratorio
-- Extiende la tabla users (contactos WhatsApp existentes)
-- ============================================================

CREATE TABLE IF NOT EXISTS `lab_pacientes` (
    `id`                INT(11)         NOT NULL AUTO_INCREMENT,
    `user_id`           INT(11)         DEFAULT NULL            COMMENT 'FK a users.id (teléfono WhatsApp)',
    `numero_documento`  VARCHAR(30)     DEFAULT NULL            COMMENT 'Cédula / NIT / Pasaporte',
    `tipo_documento`    ENUM('CC','CE','TI','PA','NIT','RC','MS') DEFAULT 'CC',
    `nombre_completo`   VARCHAR(150)    NOT NULL,
    `telefono`          VARCHAR(20)     DEFAULT NULL,
    `email`             VARCHAR(100)    DEFAULT NULL,
    `fecha_nacimiento`  DATE            DEFAULT NULL,
    `genero`            ENUM('M','F','O') DEFAULT NULL,
    `direccion`         TEXT            DEFAULT NULL,
    `ciudad`            VARCHAR(100)    DEFAULT NULL,
    `barrio`            VARCHAR(100)    DEFAULT NULL,
    `eps`               VARCHAR(100)    DEFAULT NULL            COMMENT 'Entidad promotora de salud',
    `notas_admin`       TEXT            DEFAULT NULL            COMMENT 'Notas internas del administrador',
    `is_active`         TINYINT(1)      NOT NULL DEFAULT 1,
    `created_at`        TIMESTAMP       NULL DEFAULT CURRENT_TIMESTAMP,
    `updated_at`        TIMESTAMP       NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `uq_numero_documento` (`numero_documento`),
    KEY `idx_user_id`        (`user_id`),
    KEY `idx_nombre`         (`nombre_completo`),
    KEY `idx_telefono`       (`telefono`),
    KEY `idx_documento`      (`numero_documento`),
    CONSTRAINT `fk_lab_pac_user` FOREIGN KEY (`user_id`)
        REFERENCES `users` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Pacientes del laboratorio (módulo administrativo)';
