From 7b5d5fd48e3036f2da9086970b713b262c5a8c60 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Wed, 22 May 2024 18:56:23 -0700 Subject: [PATCH 1/5] updated schema design --- backend/typescript/prisma/schema.prisma | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/backend/typescript/prisma/schema.prisma b/backend/typescript/prisma/schema.prisma index a9944ce..37d7f48 100644 --- a/backend/typescript/prisma/schema.prisma +++ b/backend/typescript/prisma/schema.prisma @@ -23,7 +23,7 @@ model User { donations Donation[] } -enum RoleType{ +enum RoleType { Admin User } @@ -39,6 +39,7 @@ model Donation { cause_id Int is_recurring Recurrence confirmation_email_sent Boolean + transactions Payment[] } enum Recurrence { @@ -75,3 +76,22 @@ model Item { npo NPO? @relation("NPOItem") npo_id Int? @unique } + +model Payment { + id Int @id @default(autoincrement()) + stripePaymentId String @unique + creationDate DateTime @default(now()) + updateDate DateTime @updatedAt + donation Donation @relation(fields: [donation_id], references: [id]) + donation_id Int + amount Int + currency String + status PaymentStatus +} + +enum PaymentStatus { + PAID + PROCESSING + UNPAID + DENIED +} \ No newline at end of file From c0059c64429f93b8767af7d73fcaad91ceeea086 Mon Sep 17 00:00:00 2001 From: roskzhu Date: Sun, 26 May 2024 14:12:14 -0400 Subject: [PATCH 2/5] created and applied migrations for payments table --- .../migration.sql | 19 +++++++++++++++++++ .../migration.sql | 1 + 2 files changed, 20 insertions(+) create mode 100644 backend/typescript/prisma/migrations/20240526175138_create_payments_table/migration.sql create mode 100644 backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql diff --git a/backend/typescript/prisma/migrations/20240526175138_create_payments_table/migration.sql b/backend/typescript/prisma/migrations/20240526175138_create_payments_table/migration.sql new file mode 100644 index 0000000..8c9acd3 --- /dev/null +++ b/backend/typescript/prisma/migrations/20240526175138_create_payments_table/migration.sql @@ -0,0 +1,19 @@ +-- CreateEnum +CREATE TYPE "PaymentStatus" AS ENUM ('PAID', 'PROCESSING', 'UNPAID', 'DENIED'); + +-- CreateTable +CREATE TABLE "Payment" ( + "id" SERIAL NOT NULL, + "stripePaymentId" TEXT NOT NULL, + "creationDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updateDate" TIMESTAMP(3) NOT NULL, + "donation_id" INTEGER NOT NULL, + "amount" INTEGER NOT NULL, + "currency" TEXT NOT NULL, + "status" "PaymentStatus" NOT NULL, + + CONSTRAINT "Payment_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Payment_stripePaymentId_key" ON "Payment"("stripePaymentId"); diff --git a/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql b/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql new file mode 100644 index 0000000..af5102c --- /dev/null +++ b/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql @@ -0,0 +1 @@ +-- This is an empty migration. \ No newline at end of file From c9f204a19f023dd29ff174c2cd0508fa01a21590 Mon Sep 17 00:00:00 2001 From: roskzhu Date: Wed, 5 Jun 2024 20:42:28 -0400 Subject: [PATCH 3/5] reversed payment and donation relation --- backend/typescript/prisma/schema.prisma | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/typescript/prisma/schema.prisma b/backend/typescript/prisma/schema.prisma index 37d7f48..7e8f0cc 100644 --- a/backend/typescript/prisma/schema.prisma +++ b/backend/typescript/prisma/schema.prisma @@ -39,7 +39,8 @@ model Donation { cause_id Int is_recurring Recurrence confirmation_email_sent Boolean - transactions Payment[] + transactions Payment @relation(fields: [payment_id], references: [id]) + payment_id Int @unique } enum Recurrence { @@ -82,8 +83,7 @@ model Payment { stripePaymentId String @unique creationDate DateTime @default(now()) updateDate DateTime @updatedAt - donation Donation @relation(fields: [donation_id], references: [id]) - donation_id Int + donation Donation? amount Int currency String status PaymentStatus From 09544e5ccccfd93704eda42abda317e91cf44851 Mon Sep 17 00:00:00 2001 From: roskzhu Date: Thu, 6 Jun 2024 14:36:15 -0400 Subject: [PATCH 4/5] removed empty migration, updated amt type (int -> float) --- .../20240526175607_create_payments_table/migration.sql | 1 - backend/typescript/prisma/schema.prisma | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql diff --git a/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql b/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql deleted file mode 100644 index af5102c..0000000 --- a/backend/typescript/prisma/migrations/20240526175607_create_payments_table/migration.sql +++ /dev/null @@ -1 +0,0 @@ --- This is an empty migration. \ No newline at end of file diff --git a/backend/typescript/prisma/schema.prisma b/backend/typescript/prisma/schema.prisma index 7e8f0cc..3beacb0 100644 --- a/backend/typescript/prisma/schema.prisma +++ b/backend/typescript/prisma/schema.prisma @@ -84,7 +84,7 @@ model Payment { creationDate DateTime @default(now()) updateDate DateTime @updatedAt donation Donation? - amount Int + amount Float currency String status PaymentStatus } From ad33c3c4d9ac16e99f2454b3f3d18b9821e63e6c Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 10 Jun 2024 17:25:06 -0700 Subject: [PATCH 5/5] made payment and donations link optional --- .../migrations/20240611002441_/migration.sql | 16 ++++++++++++++++ backend/typescript/prisma/schema.prisma | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 backend/typescript/prisma/migrations/20240611002441_/migration.sql diff --git a/backend/typescript/prisma/migrations/20240611002441_/migration.sql b/backend/typescript/prisma/migrations/20240611002441_/migration.sql new file mode 100644 index 0000000..53070a7 --- /dev/null +++ b/backend/typescript/prisma/migrations/20240611002441_/migration.sql @@ -0,0 +1,16 @@ +/* + Warnings: + + - You are about to drop the column `donation_id` on the `Payment` table. All the data in the column will be lost. + - A unique constraint covering the columns `[payment_id]` on the table `Donation` will be added. If there are existing duplicate values, this will fail. + +*/ +-- AlterTable +ALTER TABLE "Donation" ADD COLUMN "payment_id" INTEGER; + +-- AlterTable +ALTER TABLE "Payment" DROP COLUMN "donation_id", +ALTER COLUMN "amount" SET DATA TYPE DOUBLE PRECISION; + +-- CreateIndex +CREATE UNIQUE INDEX "Donation_payment_id_key" ON "Donation"("payment_id"); diff --git a/backend/typescript/prisma/schema.prisma b/backend/typescript/prisma/schema.prisma index 3beacb0..b5bcd6b 100644 --- a/backend/typescript/prisma/schema.prisma +++ b/backend/typescript/prisma/schema.prisma @@ -39,8 +39,8 @@ model Donation { cause_id Int is_recurring Recurrence confirmation_email_sent Boolean - transactions Payment @relation(fields: [payment_id], references: [id]) - payment_id Int @unique + transactions Payment? @relation(fields: [payment_id], references: [id]) + payment_id Int? @unique } enum Recurrence {