update
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
-- Phase 83: Separate pull status mappings table for Allegro
|
||||
-- Pull direction (Allegro -> orderPRO) needs its own table with UNIQUE on allegro_status_code
|
||||
-- because push direction has UNIQUE on orderpro_status_code (one Allegro status per orderPRO status)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS allegro_order_status_pull_mappings (
|
||||
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
||||
allegro_status_code VARCHAR(100) NOT NULL,
|
||||
allegro_status_name VARCHAR(255) DEFAULT NULL,
|
||||
orderpro_status_code VARCHAR(100) DEFAULT NULL,
|
||||
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY allegro_pull_allegro_code_unique (allegro_status_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
-- Pre-populate from existing push mappings (reverse: for each allegro_status_code take newest row)
|
||||
INSERT IGNORE INTO allegro_order_status_pull_mappings (allegro_status_code, allegro_status_name, orderpro_status_code)
|
||||
SELECT asm.allegro_status_code, asm.allegro_status_name, asm.orderpro_status_code
|
||||
FROM allegro_order_status_mappings asm
|
||||
INNER JOIN (
|
||||
SELECT allegro_status_code, MAX(id) AS max_id
|
||||
FROM allegro_order_status_mappings
|
||||
WHERE allegro_status_code IS NOT NULL
|
||||
AND allegro_status_code <> ''
|
||||
GROUP BY allegro_status_code
|
||||
) latest ON asm.id = latest.max_id
|
||||
WHERE asm.allegro_status_code IS NOT NULL
|
||||
AND asm.allegro_status_code <> '';
|
||||
Reference in New Issue
Block a user