Wire the app to the shared Supabase catalog (public catalog read integration)
Moves port/cable/category/device-template data from per-diagram embedded storage to the global public/private catalog backed by Supabase, per organized-ideas.md's "live reference, not snapshot" decision. - domain/types.ts, project.ts, compatibility.ts, bom.ts: lookup functions now take an explicit Catalog parameter instead of deriving data from Project — Project is reduced to just diagram-scoped fields. - New CatalogRepository/SupabaseCatalogRepository (mirrors the DiagramRepository pattern) and catalogStore.ts, replacing the catalog-related actions that used to live in projectStore. - device_templates gets a plain-text manufacturer column for now (the normalized manufacturer catalog from organized-ideas.md §3 is its own future pass, not blocking this one). - domain/library.ts is no longer imported by the app — it's now only the source scripts/generate-seed.mjs reads to produce supabase/seed.sql. - Swept every UI call site via tsc -b until clean; oxlint clean; 23/23 pgTAP RLS tests still passing after a `supabase db reset`.
This commit is contained in:
+28
-28
@@ -86,40 +86,40 @@ insert into public.cable_types (id, name, family, family2, unit, is_public) valu
|
||||
|
||||
-- Device templates + their ports
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-display', 'Display (TV / Projector)', 'display', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('62079818-e050-4dee-8065-4eedd40f4c02', 'dt-display', 'HDMI In 1', 'input', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('04eeee4d-ac8e-4aef-a2ae-1e4dd2e4fc2a', 'dt-display', 'HDMI In 2', 'input', 'pt-hdmi', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('182dd666-cfe7-489a-97e4-78e2fdf91668', 'dt-display', 'Power In', 'input', 'pt-iec-power', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('d88055fb-9fd7-4dfc-b9a0-0c9b508164cd', 'dt-display', 'HDMI In 1', 'input', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('5912e28d-dd20-41ae-b1db-4f54be9d4c50', 'dt-display', 'HDMI In 2', 'input', 'pt-hdmi', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('6f401c75-9abf-4662-92b8-78544641c408', 'dt-display', 'Power In', 'input', 'pt-iec-power', 2);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-media-player', 'Media Player / Streamer', 'video-source', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('21d1e934-948b-4060-afc1-8f8827223ed7', 'dt-media-player', 'HDMI Out', 'output', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('e9123870-9f39-4703-9d2c-56cff2bf5162', 'dt-media-player', 'Power In', 'input', 'pt-nema-power', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('ff7d299c-9c29-4f78-8045-5d7ede0ce67a', 'dt-media-player', 'HDMI Out', 'output', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('5dd62566-e768-4945-a634-b86af3de8aea', 'dt-media-player', 'Power In', 'input', 'pt-nema-power', 1);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-avr', 'AV Receiver', 'amplifier', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('1ab3b4b4-51db-46bf-b473-42203cc522d9', 'dt-avr', 'HDMI In 1', 'input', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('66536c92-a719-46a1-bb5e-4e15b4e3aa15', 'dt-avr', 'HDMI In 2', 'input', 'pt-hdmi', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('6b4611a2-f2ec-409f-a89d-97bfa70fdd1d', 'dt-avr', 'HDMI In 3', 'input', 'pt-hdmi', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('345d6b0e-d260-4b7c-be62-cadd581890ec', 'dt-avr', 'HDMI Out (Display)', 'output', 'pt-hdmi', 3);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('07d68503-7f75-4783-be3f-db34b3066f83', 'dt-avr', 'Speaker Out L', 'output', 'pt-speaker-wire', 4);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('f68bf47e-dd17-4b64-84d9-ada7b3b75132', 'dt-avr', 'Speaker Out R', 'output', 'pt-speaker-wire', 5);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('7c6780fd-a26c-4c09-ab6c-5417ed9a31de', 'dt-avr', 'Power In', 'input', 'pt-iec-power', 6);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('d013105c-bf1e-4031-9457-a5d13257b32c', 'dt-avr', 'HDMI In 1', 'input', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('9fb7d9ae-1ef4-4cf0-8c42-16b17a7bce39', 'dt-avr', 'HDMI In 2', 'input', 'pt-hdmi', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('bdb31007-8551-41c9-8a1d-13d5a5d13c6d', 'dt-avr', 'HDMI In 3', 'input', 'pt-hdmi', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('5c0203a1-5a8d-46fa-9561-c2b641d5cdcf', 'dt-avr', 'HDMI Out (Display)', 'output', 'pt-hdmi', 3);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('3b32c9cc-d3b5-4487-af58-dea5580dc888', 'dt-avr', 'Speaker Out L', 'output', 'pt-speaker-wire', 4);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('fa5ff4f6-2f28-426e-adb5-5f2b4b42ca8a', 'dt-avr', 'Speaker Out R', 'output', 'pt-speaker-wire', 5);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('88e76400-320f-4d2d-a653-b760de6447ea', 'dt-avr', 'Power In', 'input', 'pt-iec-power', 6);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-speaker', 'Speaker (Passive)', 'speaker', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('3a0157b0-635a-43cb-b874-446c70ab32f2', 'dt-speaker', 'Speaker In', 'input', 'pt-speaker-wire', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('f8586575-70c2-453f-8608-ddc2e54810e4', 'dt-speaker', 'Speaker In', 'input', 'pt-speaker-wire', 0);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-switch', 'Network Switch', 'network', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('8167e698-3693-4256-aa84-80de3638710c', 'dt-switch', 'Port 1', 'bidirectional', 'pt-cat-rj45', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('ce4e8e83-0c91-422d-88df-6caf6af5a145', 'dt-switch', 'Port 2', 'bidirectional', 'pt-cat-rj45', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('f215e7ab-2c12-46c9-989e-ee6d55c2fa1f', 'dt-switch', 'Port 3', 'bidirectional', 'pt-cat-rj45', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('baf456fc-643a-42e4-8981-ce22eefa94b3', 'dt-switch', 'Port 4', 'bidirectional', 'pt-cat-rj45', 3);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('42c14e32-7315-4008-a8d9-32621e4d9569', 'dt-switch', 'Power In', 'input', 'pt-iec-power', 4);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('3d8a38ca-652a-489e-8b0c-07207ecd5ec3', 'dt-switch', 'Port 1', 'bidirectional', 'pt-cat-rj45', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('28ff234a-3985-4487-82b2-0df600fe2bb9', 'dt-switch', 'Port 2', 'bidirectional', 'pt-cat-rj45', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('92a972be-7584-4a2f-96c8-69631040c0a2', 'dt-switch', 'Port 3', 'bidirectional', 'pt-cat-rj45', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('d30c0ccf-8990-4935-af2e-6201817b12ad', 'dt-switch', 'Port 4', 'bidirectional', 'pt-cat-rj45', 3);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('b948a928-f397-494e-9e63-fd6bd2efae87', 'dt-switch', 'Power In', 'input', 'pt-iec-power', 4);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-camera', 'PTZ Camera', 'camera', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('83e946f2-2ad3-4e31-889d-fccddf2bebde', 'dt-camera', 'SDI Out', 'output', 'pt-sdi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('439abff2-ff23-4bc1-b096-6f67e9a6fc32', 'dt-camera', 'Control (RJ45)', 'bidirectional', 'pt-cat-rj45', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('ea9355fc-3668-4085-9787-5439d9485a04', 'dt-camera', 'Power In', 'input', 'pt-nema-power', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('4ba62e67-b3b2-4113-aef3-fa4e9a61b3d5', 'dt-camera', 'SDI Out', 'output', 'pt-sdi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('65cee659-d23c-42d6-9791-bdf957ea5186', 'dt-camera', 'Control (RJ45)', 'bidirectional', 'pt-cat-rj45', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('b9b359d6-d796-4972-9259-d930339d8007', 'dt-camera', 'Power In', 'input', 'pt-nema-power', 2);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-computer', 'Computer / Laptop', 'computer', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('c8bd2521-5227-419c-a437-d319cf4f90ba', 'dt-computer', 'HDMI Out', 'output', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('73c8c3fb-9ee7-4f39-a241-449bf5ce36ea', 'dt-computer', 'USB-C', 'bidirectional', 'pt-usb-c', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('e417fea4-acf6-44a2-848f-a479003a1ee1', 'dt-computer', 'Ethernet', 'bidirectional', 'pt-cat-rj45', 2);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('1f050620-7f3d-427e-a682-f18afec5d582', 'dt-computer', 'HDMI Out', 'output', 'pt-hdmi', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('ebded1f5-83e9-4942-b6cd-3c8fa54f71c0', 'dt-computer', 'USB-C', 'bidirectional', 'pt-usb-c', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('4159750f-b334-4f45-848d-11ebb4168ff2', 'dt-computer', 'Ethernet', 'bidirectional', 'pt-cat-rj45', 2);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-adapter-midi-trs-a-to-din', '3.5mm-to-DIN MIDI Adapter (Type A)', 'adapter', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('5b295fb4-290f-4800-ba5f-4ad2b314717a', 'dt-adapter-midi-trs-a-to-din', '3.5mm In (from MIDI Out)', 'input', 'pt-midi-trs-a', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('cdfb5cf4-848f-4389-bacd-9858f85ce6fd', 'dt-adapter-midi-trs-a-to-din', 'DIN Out (to MIDI In)', 'output', 'pt-midi-din', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('367bf562-4530-4ba8-8576-08a8e0148d3a', 'dt-adapter-midi-trs-a-to-din', '3.5mm In (from MIDI Out)', 'input', 'pt-midi-trs-a', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('56f8238f-204b-4793-992d-ab197915009c', 'dt-adapter-midi-trs-a-to-din', 'DIN Out (to MIDI In)', 'output', 'pt-midi-din', 1);
|
||||
insert into public.device_templates (id, name, category_id, is_public) values ('dt-adapter-midi-trs-b-to-din', '3.5mm-to-DIN MIDI Adapter (Type B)', 'adapter', true);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('c1f2e564-8b14-483e-a719-633ffa1901e3', 'dt-adapter-midi-trs-b-to-din', '3.5mm In (from MIDI Out)', 'input', 'pt-midi-trs-b', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('8b5d138d-d936-47a9-a625-dafc184c1e7f', 'dt-adapter-midi-trs-b-to-din', 'DIN Out (to MIDI In)', 'output', 'pt-midi-din', 1);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('30695330-998c-4ffd-b672-eb746107b63c', 'dt-adapter-midi-trs-b-to-din', '3.5mm In (from MIDI Out)', 'input', 'pt-midi-trs-b', 0);
|
||||
insert into public.device_template_ports (id, device_template_id, name, direction, port_type_id, sort_order) values ('15a3e559-d725-4fb2-a419-c649c4da9c16', 'dt-adapter-midi-trs-b-to-din', 'DIN Out (to MIDI In)', 'output', 'pt-midi-din', 1);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user