808 B
808 B
Database & Data Layer
Prisma Schema
- Schema at
prisma/schema.prisma(~2400 lines, 100+ models) - Common model conventions:
@default(cuid())IDs,createdAt/updatedAttimestamps,deletedAt DateTime?(soft delete),isActive Boolean @default(true) - Seeders per-module in
prisma/_seeder_list/, orchestrated byprisma/seed.ts
Authentication Flow
- User submits phone → OTP sent (email/SMS)
- OTP validated → JWT created + iron-session stored
UserSessionmodel tracks active sessionssrc/middleware.tsvalidates on each requestsrc/lib/api-auth.tshandles JWT/session checks in API routes
File Handling
All uploaded files reference the FileStorage Prisma model. Uploads land in WIBU_UPLOAD_DIR (default: uploads/). Seafile is the external storage fallback.