File size: 1,889 Bytes
35420f5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:../db/custom.db"
}
model User {
id String @id @default(cuid())
email String @unique
name String
password String
plan String @default("free")
stripeCid String?
apiKey String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
sessions Session[]
invoices Invoice[]
activityLogs ActivityLog[]
}
model Session {
id String @id @default(cuid())
token String @unique
userId String
expiresAt DateTime
createdAt DateTime @default(now())
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
model Invoice {
id String @id @default(cuid())
userId String
filename String?
vendor String?
invNumber String?
invDate String?
dueDate String?
amount Float?
vatAmount Float?
total Float?
currency String @default("USD")
status String @default("done")
isDuplicate Boolean @default(false)
confidence Float?
rawJson String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
}
model RateLimit {
id String @id @default(cuid())
key String @unique
count Int @default(0)
resetAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model ActivityLog {
id String @id @default(cuid())
userId String
type String
title String
description String
metadata String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
@@index([userId])
} |