-- =============================================================================
-- XPERT SAP B1 - Migracion 055
-- Modulo DRP Fase 3: aprobacion y disparo real. Vincula una corrida (o mas
-- precisamente, el grupo de lineas aprobadas de una sucursal dentro de una
-- corrida) con la Solicitud de Traslado real que se crea en
-- outbound_documents al aprobar -- ver DrpApprovalService.
--
-- outbound_document_id nullable: si la sucursal no llega a tener documento
-- (ej. fallo antes de crearlo, stock insuficiente detectado recien al
-- aprobar) el registro queda con status=FAILED y error_message, sin
-- vinculo. status='FIRED' significa que el documento WMS se creo -- no
-- necesariamente que SAP lo confirmo (eso se seguye por sap_sync_log,
-- mismo criterio que el flujo manual de OutboundTransferController).
-- =============================================================================

CREATE TABLE IF NOT EXISTS `drp_run_transfers` (
    `id`                     INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    `run_id`                 INT UNSIGNED NOT NULL,
    `warehouse_id`           INT UNSIGNED NOT NULL COMMENT 'Sucursal destino',
    `outbound_document_id`   INT UNSIGNED NULL,
    `status`                 ENUM('PENDING','FIRED','FAILED') NOT NULL DEFAULT 'PENDING',
    `error_message`          TEXT NULL,
    `created_at`             DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `updated_at`             DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY `uq_drpruntransfer` (`run_id`, `warehouse_id`),
    KEY `idx_drpruntransfer_run` (`run_id`),
    CONSTRAINT `fk_drpruntransfer_run`       FOREIGN KEY (`run_id`)               REFERENCES `drp_runs`(`id`),
    CONSTRAINT `fk_drpruntransfer_warehouse` FOREIGN KEY (`warehouse_id`)         REFERENCES `warehouses`(`id`),
    CONSTRAINT `fk_drpruntransfer_document`  FOREIGN KEY (`outbound_document_id`) REFERENCES `outbound_documents`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
