-- mCables v6 — fix IOx-* and Multi-plug-* + Wifi-plug port profiles. -- -- v4 seeded the IOx-3 / IOx-6 / IOx-8 as USB hubs (Power × 1 + USB × N), -- but m's physical IOx-* devices are power strips (1 power input on -- the back, N power outputs on the front). v5's Multi-plug 3/4/5/6 -- profiles also lumped every Power port on the bottom edge without -- distinguishing the input from the outputs. -- -- This migration replaces the port profile for the 8 power-distribution -- types with the canonical "1 in (top/back) + N out (bottom/front)" -- layout. Convention: top=back, bottom=front. -- -- N for each type: -- IOx-3 / Multi-plug 3 → 3 outputs -- IOx-6 → 6 outputs -- IOx-8 → 8 outputs -- Multi-plug 4 → 4 outputs -- Multi-plug 5 → 5 outputs -- Multi-plug 6 → 6 outputs -- Wifi-plug → 1 output (it's a pass-through outlet) -- -- Existing devices m may have created with the old profile keep their -- already-seeded ports — per design §2.3, ports are instance-owned. To -- get the new layout on an existing instance, delete it and re-create. -- -- cable_types id 1 = Power (seeded in 001). -- 1) Drop the existing port-profile rows for each affected type. DELETE FROM device_type_ports WHERE device_type_id IN ( SELECT id FROM device_types WHERE project_id IS NULL AND name IN ( 'IOx-3', 'IOx-6', 'IOx-8', 'Multi-plug 3', 'Multi-plug 4', 'Multi-plug 5', 'Multi-plug 6', 'Wifi-plug' ) ); -- 2) Insert the canonical (1 in on top, N out on bottom) profile. -- IOx-3 — 1 in + 3 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='IOx-3' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 3, 'bottom', 1 FROM device_types WHERE name='IOx-3' AND project_id IS NULL; -- IOx-6 — 1 in + 6 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='IOx-6' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 6, 'bottom', 1 FROM device_types WHERE name='IOx-6' AND project_id IS NULL; -- IOx-8 — 1 in + 8 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='IOx-8' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 8, 'bottom', 1 FROM device_types WHERE name='IOx-8' AND project_id IS NULL; -- Multi-plug 3 — 1 in + 3 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='Multi-plug 3' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 3, 'bottom', 1 FROM device_types WHERE name='Multi-plug 3' AND project_id IS NULL; -- Multi-plug 4 — 1 in + 4 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='Multi-plug 4' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 4, 'bottom', 1 FROM device_types WHERE name='Multi-plug 4' AND project_id IS NULL; -- Multi-plug 5 — 1 in + 5 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='Multi-plug 5' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 5, 'bottom', 1 FROM device_types WHERE name='Multi-plug 5' AND project_id IS NULL; -- Multi-plug 6 — 1 in + 6 out INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='Multi-plug 6' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 6, 'bottom', 1 FROM device_types WHERE name='Multi-plug 6' AND project_id IS NULL; -- Wifi-plug — 1 in + 1 out (pass-through outlet) INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power In', 1, 'top', 0 FROM device_types WHERE name='Wifi-plug' AND project_id IS NULL; INSERT INTO device_type_ports (device_type_id, cable_type_id, label_prefix, count, edge, sort_order) SELECT id, 1, 'Power Out', 1, 'bottom', 1 FROM device_types WHERE name='Wifi-plug' AND project_id IS NULL;