Commit Graph
75 Commits
Author SHA1 Message Date
adrianbonpin c0d2c8b137 feat(auth): configure Email OTP, Passkey, Last Login Method, and Admin with RBAC 2026-04-25 13:55:51 +08:00
adrianbonpin c404e93fb0 feat(auth): define RBAC with user, contributor, and admin roles 2026-04-25 13:47:47 +08:00
adrianbonpin f8aa64bd32 feat(auth): mount Better-Auth on Elysia server with session macro and role guards 2026-04-25 13:42:07 +08:00
adrianbonpin 8d058f02dd fix(eden): resolve server/client detection and bundler issues
- Use typeof window === undefined for standard Next.js server detection
- Use NEXT_PUBLIC_SITE_URL env var instead of hardcoded localhost:3000
- Use require() for server branch to prevent Elysia from entering client bundle
- Add type assertion on require() to preserve Eden Treaty types
2026-04-25 13:25:38 +08:00
adrianbonpin b2a9094819 feat(api): add isomorphic Eden Treaty client for end-to-end type safety 2026-04-25 13:17:59 +08:00
adrianbonpin 52ab8484cf fix(api): add global error handler and export app type
- Add .onError hook for centralized error handling and consistent JSON formatting
- Export app instance and App type for Eden Treaty client integration

Reference: Task 2, Issues 1 and 2
2026-04-25 13:11:45 +08:00
adrianbonpin a3cba6950e feat(api): set up Elysia server with health check on Next.js catch-all route 2026-04-25 13:04:41 +08:00
adrianbonpin 4ac1a4b243 chore: configure next.config for Elysia server compatibility 2026-04-25 12:59:58 +08:00
adrianbonpin 7560eac127 chore: add .worktrees to gitignore 2026-04-25 12:52:47 +08:00
adrianbonpin d6a75fce86 chore: add docs/superpowers to gitignore 2026-04-25 12:32:48 +08:00
adrianbonpin 18888eb57e feat: initial setup of database and auth 2026-04-25 12:31:42 +08:00
adrianbonpin 78079779c9 feat(db): move auth schema into Drizzle structure and add user FK
- Move auth schema from auth-schema.ts to lib/db/schema/auth.ts
- Export auth tables (user, session, account, verification, passkey) via barrel
- Add FK from performanceEntries.userId to user.id
- Generate and apply migration for auth tables + user FK
- Remove unused echarts dependency
2026-04-25 12:29:42 +08:00
adrianbonpin ab0fe349a1 fix: remove unused import, ignore drizzle meta files 2026-04-25 12:06:41 +08:00
adrianbonpin 1aa8773b31 fix: load .env.local in drizzle config for CLI compatibility 2026-04-25 12:04:23 +08:00
adrianbonpin 0c234ed0d9 fix: revert unnecessary env-file prefix in db scripts 2026-04-25 12:02:19 +08:00
adrianbonpin 65d13933bf feat(db): add hardware seed script, db:seed command, and initial migration
- Create lib/db/seed.ts with idempotent hardware seeding
- Add db:seed script and fix db:* scripts to load .env.local via bun --env-file
- Generate initial Drizzle migration (0000_crazy_nick_fury)
- Apply migration and seed 3 hardware devices (steamdeck-oled, steamdeck-lcd, steam-machine)
2026-04-25 11:53:10 +08:00
adrianbonpin 50f737f686 feat(db): add performance entries and game platform support schemas
- Create performanceEntries table with FPS metrics, environment details,
  feature flags (FSR, frame gen), load times, settings JSON, and moderation
- Create gamePlatformSupport table with Proton/anti-cheat status enums
  and composite unique constraint on (gameId, hardwareSlug)
- Update schema barrel export to include both new tables
2026-04-25 11:45:49 +08:00
adrianbonpin 63a6e8b7d6 fix(db): comment out forward schema exports to prevent build errors 2026-04-25 11:42:57 +08:00
adrianbonpin 89cb385e33 feat(db): add core Drizzle schema tables (hardware, games, gameVersions)
- Create lib/db/schema/ directory with barrel export index.ts
- Add hardware table with device_type enum (handled/console)
- Add games table with Steam metadata, sync fields, and JSON genres
- Add game_versions table with composite unique (gameId, buildId) and cascade delete

Refs: Chunk 2 of database schema implementation
2026-04-25 11:39:20 +08:00
adrianbonpin ef20a03f55 fix: remove echarts dependency added by mistake 2026-04-25 11:37:05 +08:00
adrianbonpin ad3fd31feb feat(db): setup drizzle config, client and package scripts
- Add drizzle.config.ts with PostgreSQL dialect configuration
- Create lib/db/index.ts with Drizzle ORM client and pg Pool
- Add db:generate, db:migrate, db:studio, db:push scripts to package.json

Part of Chunk 1: Drizzle Config & DB Client setup
2026-04-25 11:32:13 +08:00
adrianbonpin 9a87b3c7be feat: make responsive and add .env.example 2026-04-25 02:03:55 +08:00
adrianbonpin 0dd1e86487 feat: add comprehensive SEO (metadata, OG images, sitemap, robots, manifest) and update README 2026-04-25 01:52:28 +08:00
adrianbonpin 4688f3f594 feat: install initial required deps and update readme 2026-04-24 22:02:56 +08:00
adrianbonpin 04588d04c7 Initial commit from Create Next App 2026-04-24 21:49:07 +08:00