Avery Felts 750c5af465 Switch from localStorage to SQLite database for persistent storage
- 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>
2026-01-24 01:08:10 -07:00

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])
}