Full project rename per m's call. Single atomic commit because the codebase rename is a coupled change — go module path, env vars, DB default, Docker artefact names, and on-disk mDock paths all flip together. - go.mod: module mgit.msbls.de/m/mcables → mgit.msbls.de/m/cablegui - cmd/mcables → cmd/cablegui (git mv) - All Go imports rewritten to the new module path - Env vars: MCABLES_ADDR/MCABLES_DB → CABLEGUI_ADDR/CABLEGUI_DB - DB default path: data/mcables.db → data/cablegui.db - Dockerfile + docker-compose.yml: image, container_name, env vars, bind-mount /home/m/stacks/mcables → /home/m/stacks/cablegui, secrets /home/m/secrets/mcables → /home/m/secrets/cablegui - Makefile: bin target + run/build commands point at cmd/cablegui - .gitignore + .dockerignore: /mcables → /cablegui - README, docs/design.md, CLAUDE.md: prose + paths + image name - web/static/index.html: <title> + brand - web/static/main.js + web/web.go: header comment - internal/exporter: Scene.Source "mcables" → "cablegui" - internal/server/export.go: error-detail secrets path - internal/db/migrations/*.sql: header comments (mCables vN → CableGUI vN) Memory group_id kept as "mcables" to preserve existing memory continuity. Documented as historical in CLAUDE.md. go build ./... clean; go test -race ./... green
32 lines
1.4 KiB
SQL
32 lines
1.4 KiB
SQL
-- CableGUI v5 — cable routing via clamps. See docs/design.md §11.
|
|
--
|
|
-- A clamp is a physical anchor placed on the canvas. A cable's polyline
|
|
-- runs from its `from` endpoint → its clamps in `ord` sequence → its
|
|
-- `to` endpoint. Cables that share an ordered pair of consecutive
|
|
-- clamps are visibly bundled along that segment (computed live by the
|
|
-- frontend; no detection pass).
|
|
|
|
CREATE TABLE clamps (
|
|
id INTEGER PRIMARY KEY,
|
|
project_id INTEGER NOT NULL REFERENCES projects(id) ON DELETE CASCADE,
|
|
x REAL NOT NULL,
|
|
y REAL NOT NULL,
|
|
label TEXT NOT NULL DEFAULT '',
|
|
frame_id INTEGER REFERENCES frames(id) ON DELETE SET NULL,
|
|
excalidraw_id TEXT,
|
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
UNIQUE (project_id, excalidraw_id)
|
|
);
|
|
CREATE INDEX clamps_project_idx ON clamps(project_id);
|
|
CREATE INDEX clamps_frame_idx ON clamps(frame_id);
|
|
|
|
CREATE TABLE cable_clamps (
|
|
cable_id INTEGER NOT NULL REFERENCES cables(id) ON DELETE CASCADE,
|
|
clamp_id INTEGER NOT NULL REFERENCES clamps(id) ON DELETE CASCADE,
|
|
ord INTEGER NOT NULL, -- 1-based along from→to
|
|
PRIMARY KEY (cable_id, ord),
|
|
UNIQUE (cable_id, clamp_id)
|
|
);
|
|
CREATE INDEX cable_clamps_clamp_idx ON cable_clamps(clamp_id);
|