59 lines
2.6 KiB
SQL
59 lines
2.6 KiB
SQL
-- Phase 74: Reverse status mapping direction
|
|
-- Changes unique key from external_status_code to orderpro_status_code
|
|
-- so UI shows orderPRO statuses as rows with external status dropdown
|
|
|
|
-- ============================================================
|
|
-- 1. order_status_mappings (shopPRO)
|
|
-- ============================================================
|
|
|
|
-- Remove duplicates on (integration_id, orderpro_status_code) keeping newest row
|
|
DELETE osm1 FROM order_status_mappings osm1
|
|
INNER JOIN order_status_mappings osm2
|
|
ON osm1.integration_id = osm2.integration_id
|
|
AND osm1.orderpro_status_code = osm2.orderpro_status_code
|
|
AND osm1.id < osm2.id;
|
|
|
|
-- Drop old unique key on (integration_id, shoppro_status_code)
|
|
ALTER TABLE order_status_mappings
|
|
DROP INDEX order_status_mappings_integration_shoppro_unique;
|
|
|
|
-- Add regular index on (integration_id, shoppro_status_code) for pull lookups
|
|
ALTER TABLE order_status_mappings
|
|
ADD INDEX order_status_mappings_integration_shoppro_idx (integration_id, shoppro_status_code);
|
|
|
|
-- Drop old non-unique index on orderpro_status_code
|
|
ALTER TABLE order_status_mappings
|
|
DROP INDEX order_status_mappings_orderpro_idx;
|
|
|
|
-- Add new unique key on (integration_id, orderpro_status_code)
|
|
ALTER TABLE order_status_mappings
|
|
ADD UNIQUE INDEX order_status_mappings_integration_orderpro_unique (integration_id, orderpro_status_code);
|
|
|
|
-- ============================================================
|
|
-- 2. allegro_order_status_mappings (Allegro)
|
|
-- ============================================================
|
|
|
|
-- Remove duplicates on orderpro_status_code (non-NULL only) keeping newest row
|
|
DELETE asm1 FROM allegro_order_status_mappings asm1
|
|
INNER JOIN allegro_order_status_mappings asm2
|
|
ON asm1.orderpro_status_code = asm2.orderpro_status_code
|
|
AND asm1.orderpro_status_code IS NOT NULL
|
|
AND asm2.orderpro_status_code IS NOT NULL
|
|
AND asm1.id < asm2.id;
|
|
|
|
-- Drop old unique key on allegro_status_code
|
|
ALTER TABLE allegro_order_status_mappings
|
|
DROP INDEX allegro_order_status_mappings_code_unique;
|
|
|
|
-- Add regular index on allegro_status_code for pull lookups
|
|
ALTER TABLE allegro_order_status_mappings
|
|
ADD INDEX allegro_order_status_mappings_allegro_code_idx (allegro_status_code);
|
|
|
|
-- Drop old non-unique index on orderpro_status_code
|
|
ALTER TABLE allegro_order_status_mappings
|
|
DROP INDEX allegro_order_status_mappings_orderpro_code_idx;
|
|
|
|
-- Add new unique key on orderpro_status_code (NULLs allowed — multiple discovered-only rows OK)
|
|
ALTER TABLE allegro_order_status_mappings
|
|
ADD UNIQUE INDEX allegro_order_status_mappings_orderpro_unique (orderpro_status_code);
|