aboutsummaryrefslogtreecommitdiffstats
path: root/prisma
diff options
context:
space:
mode:
authorSebastien Castiel <sebastien@castiel.me>2024-01-08 18:11:11 +0100
committerGitHub <noreply@github.com>2024-01-08 12:11:11 -0500
commit0a8e56f80033ce889b38b01f2287cd6fbbe36dd6 (patch)
tree333572d8e30d340288e6bf2388428bf465e928a4 /prisma
parent0fb0c42ff56c9cc66aeb8f875c6389c3d2ace1b9 (diff)
Add splitmode and shares to expenses (#11)
* Add splitmode and shares to expenses * Update balances based on shares * Change field size * Form validation * Redesign expense form * Split unevenly by amount
Diffstat (limited to 'prisma')
-rw-r--r--prisma/migrations/20231215203936_add_shares_in_expenses/migration.sql2
-rw-r--r--prisma/migrations/20231215213409_add_split_mode/migration.sql5
-rw-r--r--prisma/schema.prisma9
3 files changed, 16 insertions, 0 deletions
diff --git a/prisma/migrations/20231215203936_add_shares_in_expenses/migration.sql b/prisma/migrations/20231215203936_add_shares_in_expenses/migration.sql
new file mode 100644
index 0000000..ecf7a04
--- /dev/null
+++ b/prisma/migrations/20231215203936_add_shares_in_expenses/migration.sql
@@ -0,0 +1,2 @@
+-- AlterTable
+ALTER TABLE "ExpensePaidFor" ADD COLUMN "shares" INTEGER NOT NULL DEFAULT 1;
diff --git a/prisma/migrations/20231215213409_add_split_mode/migration.sql b/prisma/migrations/20231215213409_add_split_mode/migration.sql
new file mode 100644
index 0000000..ac36cfc
--- /dev/null
+++ b/prisma/migrations/20231215213409_add_split_mode/migration.sql
@@ -0,0 +1,5 @@
+-- CreateEnum
+CREATE TYPE "SplitMode" AS ENUM ('EVENLY', 'BY_SHARES', 'BY_PERCENTAGE', 'BY_AMOUNT');
+
+-- AlterTable
+ALTER TABLE "Expense" ADD COLUMN "splitMode" "SplitMode" NOT NULL DEFAULT 'EVENLY';
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index edf68f2..fd65754 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -39,14 +39,23 @@ model Expense {
paidFor ExpensePaidFor[]
groupId String
isReimbursement Boolean @default(false)
+ splitMode SplitMode @default(EVENLY)
createdAt DateTime @default(now())
}
+enum SplitMode {
+ EVENLY
+ BY_SHARES
+ BY_PERCENTAGE
+ BY_AMOUNT
+}
+
model ExpensePaidFor {
expense Expense @relation(fields: [expenseId], references: [id], onDelete: Cascade)
participant Participant @relation(fields: [participantId], references: [id], onDelete: Cascade)
expenseId String
participantId String
+ shares Int @default(1)
@@id([expenseId, participantId])
}