2.0 KiB
2.0 KiB
Plan 32-01 Summary: Schema Migration (isPublic -> visibility)
Status: Complete
Commit: edc9793
What was done
-
Schema changes (
src/db/schema.ts):- Replaced
isPublic: booleanwithvisibility: text(default "private") on setups table - Added
sharestable with columns: id, setupId, token, permission, expiresAt, userId, createdAt, revokedAt - Removed
booleanimport from drizzle-orm/pg-core
- Replaced
-
Migration (
drizzle-pg/0005_true_green_goblin.sql):- Creates shares table with FK constraints
- Adds visibility column with data migration (
UPDATE setups SET visibility = 'public' WHERE is_public = true) - Drops is_public column
-
Full-stack isPublic -> visibility replacement across 16 files:
src/shared/schemas.ts:z.enum(["private", "link", "public"])replacesz.boolean()src/server/services/setup.service.ts: createSetup, getAllSetups, updateSetupsrc/server/services/discovery.service.ts:eq(setups.visibility, "public")src/server/services/profile.service.ts: Two occurrences updatedsrc/server/routes/account.ts: Delete account reassignment querysrc/client/hooks/useSetups.ts: Types and mutation signaturessrc/client/components/SetupCard.tsx: Visibility badge (public=green, link=blue)src/client/components/SetupsView.tsx: Passes visibility propsrc/client/routes/setups/$setupId.tsx: Temporary visibility badge with lock/link/globe iconssrc/db/dev-seed.tsandsrc/db/dev-seed-data.ts: Seed data updated
-
Tests updated across 4 test files (46 tests pass):
tests/services/profile.service.test.tstests/services/discovery.service.test.tstests/routes/discovery.test.tstests/routes/profiles.test.tstests/helpers/db.ts: Added shares to truncation list
Verification
bun run lint: Passes (0 errors)- All affected tests pass (46/46)
- Zero isPublic/is_public references in src/ (except unrelated
isPublicRoutein __root.tsx) - Zero isPublic references in tests/