-- =============================================================
-- LIS 06 — Histórico transaccional (solo lectura post-migración)
-- Crea: lab_recepciones, lab_relaciones, lab_pagos, lab_pagos_det
-- Depende de: lab_pacientes, medicos, lab_empresas
-- =============================================================

-- -----------------------------------------------------------
-- Recepciones (equivalente a facturas del legacy)
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS lab_recepciones (
    id                  INT             NOT NULL   COMMENT 'IDRECEPCION original Firebird',
    cod_paciente_legacy VARCHAR(20)     DEFAULT NULL,
    paciente_id         INT             DEFAULT NULL,
    cod_medico_legacy   VARCHAR(20)     DEFAULT NULL,
    medico_id           INT UNSIGNED    DEFAULT NULL,
    nit_empresa         VARCHAR(20)     DEFAULT NULL,
    subgrupo            VARCHAR(100)    DEFAULT NULL,
    fecha_recepcion     DATE            NOT NULL,
    hora_inicio         TIME            DEFAULT NULL,
    prefijo             VARCHAR(5)      DEFAULT NULL,
    num_factura         INT             DEFAULT NULL,
    valor_total         DECIMAL(12,2)   NOT NULL DEFAULT 0,
    valor_desc          DECIMAL(12,2)   NOT NULL DEFAULT 0,
    diag_ppal           VARCHAR(10)     DEFAULT NULL   COMMENT 'Código diagnóstico CIE-10',
    tipo_usuario        VARCHAR(10)     DEFAULT NULL,
    autorizacion        VARCHAR(50)     DEFAULT NULL,
    usuario             VARCHAR(50)     DEFAULT NULL   COMMENT 'Login del operador en Firebird',
    es_historico        TINYINT(1)      NOT NULL DEFAULT 1,
    migrado_at          DATETIME        NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    KEY idx_paciente    (paciente_id),
    KEY idx_fecha       (fecha_recepcion),
    KEY idx_empresa     (nit_empresa),
    KEY idx_factura     (prefijo, num_factura)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Recepciones históricas — solo lectura, migrado de Firebird';

-- -----------------------------------------------------------
-- Exámenes por recepción
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS lab_relaciones (
    recepcion_id        INT             NOT NULL,
    cod_examen_legacy   VARCHAR(20)     NOT NULL,
    exam_tipo_id        INT UNSIGNED    DEFAULT NULL,
    precio              DECIMAL(12,2)   NOT NULL DEFAULT 0,
    fecha_reportado     DATE            DEFAULT NULL,
    reportado           TINYINT(1)      NOT NULL DEFAULT 0,
    reportado_por       VARCHAR(50)     DEFAULT NULL,
    validado            TINYINT(1)      NOT NULL DEFAULT 0,
    usuario_valida      VARCHAR(50)     DEFAULT NULL,
    fecha_valida        DATE            DEFAULT NULL,
    PRIMARY KEY (recepcion_id, cod_examen_legacy),
    KEY idx_exam_tipo   (exam_tipo_id),
    CONSTRAINT fk_rel_recepcion FOREIGN KEY (recepcion_id)
        REFERENCES lab_recepciones (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Exámenes por recepción histórica — replica RELACION Firebird';

-- -----------------------------------------------------------
-- Pagos
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS lab_pagos (
    id              INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    numcaja_legacy  INT             NOT NULL UNIQUE   COMMENT 'NUMCAJA original Firebird',
    recepcion_id    INT             NOT NULL,
    valor           DECIMAL(12,2)   NOT NULL,
    fecha           DATE            NOT NULL,
    usuario         VARCHAR(50)     DEFAULT NULL,
    PRIMARY KEY (id),
    KEY idx_recepcion (recepcion_id),
    CONSTRAINT fk_pago_recep FOREIGN KEY (recepcion_id)
        REFERENCES lab_recepciones (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Pagos históricos — replica PAGOS Firebird';

-- -----------------------------------------------------------
-- Detalle de formas de pago por transacción
-- -----------------------------------------------------------
CREATE TABLE IF NOT EXISTS lab_pagos_det (
    id              INT UNSIGNED    NOT NULL AUTO_INCREMENT,
    pago_id         INT UNSIGNED    NOT NULL,
    tipo_pago       VARCHAR(30)     NOT NULL   COMMENT 'efectivo, cheque, tarjeta, etc.',
    valor           DECIMAL(12,2)   NOT NULL,
    num_doc         VARCHAR(50)     DEFAULT NULL,
    PRIMARY KEY (id),
    KEY idx_pago (pago_id),
    CONSTRAINT fk_pagdet_pago FOREIGN KEY (pago_id)
        REFERENCES lab_pagos (id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
  COMMENT='Detalle de formas de pago — replica PAGOS_DET Firebird';
