docs: add phase 32 plan summaries

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-13 18:05:24 +02:00
parent 0b46eff243
commit 7eb5335a88
4 changed files with 151 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
# Plan 32-01 Summary: Schema Migration (isPublic -> visibility)
**Status:** Complete
**Commit:** edc9793
## What was done
1. **Schema changes** (`src/db/schema.ts`):
- Replaced `isPublic: boolean` with `visibility: text` (default "private") on setups table
- Added `shares` table with columns: id, setupId, token, permission, expiresAt, userId, createdAt, revokedAt
- Removed `boolean` import from drizzle-orm/pg-core
2. **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
3. **Full-stack isPublic -> visibility replacement** across 16 files:
- `src/shared/schemas.ts`: `z.enum(["private", "link", "public"])` replaces `z.boolean()`
- `src/server/services/setup.service.ts`: createSetup, getAllSetups, updateSetup
- `src/server/services/discovery.service.ts`: `eq(setups.visibility, "public")`
- `src/server/services/profile.service.ts`: Two occurrences updated
- `src/server/routes/account.ts`: Delete account reassignment query
- `src/client/hooks/useSetups.ts`: Types and mutation signatures
- `src/client/components/SetupCard.tsx`: Visibility badge (public=green, link=blue)
- `src/client/components/SetupsView.tsx`: Passes visibility prop
- `src/client/routes/setups/$setupId.tsx`: Temporary visibility badge with lock/link/globe icons
- `src/db/dev-seed.ts` and `src/db/dev-seed-data.ts`: Seed data updated
4. **Tests updated** across 4 test files (46 tests pass):
- `tests/services/profile.service.test.ts`
- `tests/services/discovery.service.test.ts`
- `tests/routes/discovery.test.ts`
- `tests/routes/profiles.test.ts`
- `tests/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 `isPublicRoute` in __root.tsx)
- Zero isPublic references in tests/