From 558391410ee4e70b3ad3e37719d2a183e1717cbc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aaron=20D=C3=B6tsch?= <aaron@fsmpi.rwth-aachen.de>
Date: Sun, 5 Mar 2023 10:27:25 +0100
Subject: [PATCH] Add transaction verification in database

---
 .../migration.sql                                         | 8 ++++++++
 prisma/schema.prisma                                      | 7 +++++--
 2 files changed, 13 insertions(+), 2 deletions(-)
 create mode 100644 prisma/migrations/20230305031337_add_transaction_verification/migration.sql

diff --git a/prisma/migrations/20230305031337_add_transaction_verification/migration.sql b/prisma/migrations/20230305031337_add_transaction_verification/migration.sql
new file mode 100644
index 0000000..ffd3ab1
--- /dev/null
+++ b/prisma/migrations/20230305031337_add_transaction_verification/migration.sql
@@ -0,0 +1,8 @@
+-- DropIndex
+DROP INDEX "User_email_key";
+
+-- AlterTable
+ALTER TABLE "Transaction" ADD COLUMN     "verifiedById" INTEGER;
+
+-- AddForeignKey
+ALTER TABLE "Transaction" ADD CONSTRAINT "Transaction_verifiedById_fkey" FOREIGN KEY ("verifiedById") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index a5c4c33..488a449 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -16,7 +16,8 @@ model User {
   name      String
   balance   Int      @default(0)
   createdAt DateTime @default(now())
-  transactions Transaction[]
+  transactions Transaction[] @relation("user")
+  transactionsVerified Transaction[] @relation("verifiedBy")
   itemTransactions ItemTransaction[]
   cards     UserCard[]
   updatedAt DateTime @updatedAt
@@ -36,8 +37,10 @@ model Transaction {
   id        Int      @id @default(autoincrement())
   amount    Int
   createdAt DateTime @default(now())
-  user      User     @relation(fields: [userId], references: [id])
+  user      User     @relation("user", fields: [userId], references: [id])
   userId    Int
+  verifiedBy User?   @relation("verifiedBy", fields: [verifiedById], references: [id])
+  verifiedById Int?
 }
 
 model ItemCategory {
-- 
GitLab