- Add Prisma ORM with SQLite for server-side data persistence - Create UserPreferences and UsageEntry models - Add API routes for preferences and usage data CRUD operations - Update storage.ts to use fetch API calls instead of localStorage - Update components to use async data fetching - Data now persists across devices for each user account Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
44 lines
1.0 KiB
Plaintext
44 lines
1.0 KiB
Plaintext
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = "file:./dev.db"
|
|
}
|
|
|
|
model UserPreferences {
|
|
id String @id @default(cuid())
|
|
userId String @unique
|
|
substance String @default("nicotine")
|
|
trackingStartDate String?
|
|
hasCompletedSetup Boolean @default(false)
|
|
dailyGoal Int?
|
|
userName String?
|
|
userAge Int?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Quit plan fields stored as JSON string
|
|
quitPlanJson String?
|
|
|
|
usageEntries UsageEntry[]
|
|
}
|
|
|
|
model UsageEntry {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
date String
|
|
count Int
|
|
substance String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
userPreferences UserPreferences? @relation(fields: [userId], references: [userId])
|
|
|
|
@@unique([userId, date, substance])
|
|
}
|