-- =============================================================================
-- XPERT 3PL - Migracion 021
-- Trazabilidad end-to-end item/lote/serie: campos de origen externo
-- (SAP/legacy/manual) en documentos de ingreso y egreso, historial de
-- recepcion de lote (para no perder el origen si un mismo lote se resurte
-- mas de una vez), y serie en stock_movements (hoy solo vivia en stock y
-- warehouse_tasks - se perdia la identidad de la serie en el historial de
-- movimientos, que es justamente donde se arma la trazabilidad).
-- =============================================================================

ALTER TABLE `inbound_documents`
    ADD COLUMN `external_system` VARCHAR(30) NULL COMMENT 'Texto libre: SAP, Legacy, Manual, Otro - puramente referencial, sin join' AFTER `client_reference`,
    ADD COLUMN `external_doc_number` VARCHAR(40) NULL COMMENT 'Nro. de documento del sistema de origen (ej. numero de OC de SAP), referencial' AFTER `external_system`,
    ADD COLUMN `external_user` VARCHAR(60) NULL COMMENT 'Usuario/nombre de quien cargo el documento del lado de origen' AFTER `external_doc_number`;

ALTER TABLE `outbound_documents`
    ADD COLUMN `external_system` VARCHAR(30) NULL AFTER `client_reference`,
    ADD COLUMN `external_doc_number` VARCHAR(40) NULL AFTER `external_system`,
    ADD COLUMN `external_user` VARCHAR(60) NULL AFTER `external_doc_number`;

CREATE TABLE IF NOT EXISTS `batch_receipts` (
    `id`                        INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `batch_id`                  INT UNSIGNED NOT NULL,
    `inbound_document_line_id`  INT UNSIGNED NOT NULL,
    `received_qty`              DECIMAL(15,4) NOT NULL,
    `received_at`               DATETIME NOT NULL,
    `created_by`                INT UNSIGNED NULL,
    KEY `idx_batchreceipts_batch` (`batch_id`),
    KEY `idx_batchreceipts_line` (`inbound_document_line_id`),
    CONSTRAINT `fk_batchreceipts_batch` FOREIGN KEY (`batch_id`) REFERENCES `batches`(`id`),
    CONSTRAINT `fk_batchreceipts_line` FOREIGN KEY (`inbound_document_line_id`) REFERENCES `inbound_document_lines`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Historial de recepcion de un lote - un mismo batch_number puede resurtirse en distintos documentos a lo largo del tiempo, no se puede resumir en una sola columna FK sobre batches';

ALTER TABLE `stock_movements`
    ADD COLUMN `serial_number` VARCHAR(100) NULL AFTER `batch_id`;
