60 lines
1.5 KiB
Plaintext
60 lines
1.5 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
phone String @unique
|
|
passwordHash String
|
|
nickname String
|
|
email String?
|
|
familyIds String[]
|
|
activeFamilyId String?
|
|
joinDate DateTime @default(now())
|
|
createdAt DateTime @default(now())
|
|
bills Bill[]
|
|
familiesCreated Family[] @relation("FamilyCreator")
|
|
}
|
|
|
|
model Family {
|
|
id String @id @default(cuid())
|
|
name String
|
|
inviteCode String @unique
|
|
createdBy String
|
|
creator User @relation("FamilyCreator", fields: [createdBy], references: [id])
|
|
createdAt DateTime @default(now())
|
|
members FamilyMember[]
|
|
bills Bill[]
|
|
}
|
|
|
|
model FamilyMember {
|
|
id String @id @default(cuid())
|
|
familyId String
|
|
family Family @relation(fields: [familyId], references: [id], onDelete: Cascade)
|
|
userId String
|
|
nickname String
|
|
role String
|
|
joinedAt DateTime @default(now())
|
|
@@unique([familyId, userId])
|
|
}
|
|
|
|
model Bill {
|
|
id String @id @default(cuid())
|
|
userId String
|
|
user User @relation(fields: [userId], references: [id])
|
|
familyId String?
|
|
family Family? @relation(fields: [familyId], references: [id])
|
|
type String
|
|
amount Float
|
|
category String
|
|
note String?
|
|
emoji String?
|
|
time String
|
|
date DateTime
|
|
createdAt DateTime @default(now())
|
|
} |