diff options
Diffstat (limited to 'prisma/schema.prisma')
| -rw-r--r-- | prisma/schema.prisma | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/prisma/schema.prisma b/prisma/schema.prisma new file mode 100644 index 0000000..73c3ad1 --- /dev/null +++ b/prisma/schema.prisma @@ -0,0 +1,48 @@ +// 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 = "postgresql" + url = env("POSTGRES_PRISMA_URL") // uses connection pooling + directUrl = env("POSTGRES_URL_NON_POOLING") // uses a direct connection +} + +model Group { + id String @id + name String + participants Participant[] + expenses Expense[] +} + +model Participant { + id String @id + name String + group Group @relation(fields: [groupId], references: [id]) + groupId String + expensesPaidBy Expense[] + expensesPaidFor ExpensePaidFor[] +} + +model Expense { + id String @id + group Group @relation(fields: [groupId], references: [id]) + title String + amount Int + paidBy Participant @relation(fields: [paidById], references: [id]) + paidById String + paidFor ExpensePaidFor[] + groupId String +} + +model ExpensePaidFor { + expense Expense @relation(fields: [expenseId], references: [id]) + participant Participant @relation(fields: [participantId], references: [id]) + expenseId String + participantId String + + @@id([expenseId, participantId]) +} |
