89 lines
2.3 KiB
Plaintext
89 lines
2.3 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?
|
|
religion String?
|
|
lastNicotineUsageTime String?
|
|
lastWeedUsageTime String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
// Quit plan fields stored as JSON string
|
|
quitPlanJson String?
|
|
|
|
usageEntries UsageEntry[]
|
|
achievements Achievement[]
|
|
reminderSettings ReminderSettings?
|
|
savingsConfig SavingsConfig?
|
|
}
|
|
|
|
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])
|
|
}
|
|
|
|
model Achievement {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
badgeId String
|
|
unlockedAt DateTime @default(now())
|
|
substance String
|
|
|
|
userPreferences UserPreferences? @relation(fields: [userId], references: [userId])
|
|
|
|
@@unique([userId, badgeId, substance])
|
|
}
|
|
|
|
model ReminderSettings {
|
|
id String @id @default(cuid())
|
|
userId String @unique
|
|
enabled Boolean @default(false)
|
|
reminderTime String @default("09:00")
|
|
lastNotifiedDate String?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
userPreferences UserPreferences? @relation(fields: [userId], references: [userId])
|
|
}
|
|
|
|
model SavingsConfig {
|
|
id String @id @default(cuid())
|
|
userId String @unique
|
|
costPerUnit Float
|
|
unitsPerDay Float
|
|
savingsGoal Float?
|
|
goalName String?
|
|
currency String @default("USD")
|
|
substance String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
|
|
userPreferences UserPreferences? @relation(fields: [userId], references: [userId])
|
|
}
|