docs: add phase 32 plan summaries
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
.planning/phases/32-setup-sharing-system/32-01-SUMMARY.md
Normal file
42
.planning/phases/32-setup-sharing-system/32-01-SUMMARY.md
Normal 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/
|
||||
Reference in New Issue
Block a user