- Add PaySchedule model (anchorDate + amountCents + active flag) - Add /pay-schedule API route (GET, POST, DELETE) - Project biweekly pay dates from anchor; deduplicate against manual paychecks - Merge projected paychecks into dashboard totals and daily chart - Fix DST day-shift bug in getProjectedPayDates by using Date.UTC throughout - Rewrite paycheck workspace: schedule panel at top, manual entry below, projected dates with "Mark received" buttons, confirmed badges - Pass paySchedule context to Ollama insight prompt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 lines
982 B
Plaintext
54 lines
982 B
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "sqlite"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
enum Category {
|
|
RENT
|
|
FOOD
|
|
TRANSPORT
|
|
BILLS
|
|
SHOPPING
|
|
HEALTH
|
|
ENTERTAINMENT
|
|
MISC
|
|
}
|
|
|
|
model Expense {
|
|
id String @id @default(cuid())
|
|
date String
|
|
title String
|
|
amountCents Int
|
|
category Category
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model Paycheck {
|
|
id String @id @default(cuid())
|
|
payDate String
|
|
amountCents Int
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model PaySchedule {
|
|
id String @id @default(cuid())
|
|
amountCents Int
|
|
anchorDate String
|
|
active Boolean @default(true)
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model MonthlyInsight {
|
|
id String @id @default(cuid())
|
|
month String @unique
|
|
year Int
|
|
generatedAt DateTime @default(now())
|
|
summary String
|
|
recommendations String
|
|
inputSnapshot String
|
|
}
|