feat: migrate setup visibility from boolean to three-tier system

Replace isPublic boolean with visibility enum (private/link/public) across
the full stack. Add shares table to schema for future share link support.
Update all services, routes, schemas, hooks, components, and tests.

Plan: 32-01 (Setup Sharing System - Schema Migration)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 17:55:46 +02:00
parent 727abf1528
commit edc9793c2d
20 changed files with 1556 additions and 81 deletions

View File

@@ -40,7 +40,7 @@ async function insertPublicSetup(
) {
const [row] = await db
.insert(setups)
.values({ name, userId, isPublic: true })
.values({ name, userId, visibility: "public" })
.returning();
return row;
}
@@ -76,7 +76,7 @@ describe("Discovery Routes", () => {
// Insert a private setup
await db
.insert(setups)
.values({ name: "Private Setup", userId, isPublic: false });
.values({ name: "Private Setup", userId, visibility: "private" });
const res = await app.request("/api/discovery/setups");
expect(res.status).toBe(200);