This commit is contained in:
@@ -0,0 +1,117 @@
|
|||||||
|
-- CreateEnum
|
||||||
|
CREATE TYPE "DebtTransactionType" AS ENUM ('DEBT', 'PAYMENT');
|
||||||
|
|
||||||
|
-- AlterTable
|
||||||
|
ALTER TABLE "Application" ALTER COLUMN "createdAt" SET DEFAULT now(),
|
||||||
|
ALTER COLUMN "updatedAt" SET DEFAULT now();
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "DebtGroup" (
|
||||||
|
"id" UUID NOT NULL,
|
||||||
|
"publicId" VARCHAR(20) NOT NULL,
|
||||||
|
"name" VARCHAR(255) NOT NULL,
|
||||||
|
"ownerId" UUID NOT NULL,
|
||||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT "DebtGroup_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "DebtGroupMember" (
|
||||||
|
"id" UUID NOT NULL,
|
||||||
|
"groupId" UUID NOT NULL,
|
||||||
|
"userId" UUID NOT NULL,
|
||||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
|
||||||
|
CONSTRAINT "DebtGroupMember_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "DebtPerson" (
|
||||||
|
"id" UUID NOT NULL,
|
||||||
|
"groupId" UUID NOT NULL,
|
||||||
|
"name" VARCHAR(255) NOT NULL,
|
||||||
|
"isDeleted" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||||
|
|
||||||
|
CONSTRAINT "DebtPerson_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "DebtTransaction" (
|
||||||
|
"id" UUID NOT NULL,
|
||||||
|
"groupId" UUID NOT NULL,
|
||||||
|
"fromPersonId" UUID NOT NULL,
|
||||||
|
"toPersonId" UUID NOT NULL,
|
||||||
|
"amount" BIGINT NOT NULL,
|
||||||
|
"type" "DebtTransactionType" NOT NULL,
|
||||||
|
"description" TEXT,
|
||||||
|
"transactionDate" DATE NOT NULL,
|
||||||
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"createdByUserId" UUID NOT NULL,
|
||||||
|
"requestId" VARCHAR(255),
|
||||||
|
|
||||||
|
CONSTRAINT "DebtTransaction_pkey" PRIMARY KEY ("id")
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "DebtGroup_publicId_key" ON "DebtGroup"("publicId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtGroup_publicId_idx" ON "DebtGroup"("publicId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtGroup_ownerId_idx" ON "DebtGroup"("ownerId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtGroupMember_groupId_idx" ON "DebtGroupMember"("groupId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtGroupMember_userId_idx" ON "DebtGroupMember"("userId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "DebtGroupMember_groupId_userId_key" ON "DebtGroupMember"("groupId", "userId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtPerson_groupId_idx" ON "DebtPerson"("groupId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "DebtPerson_groupId_name_key" ON "DebtPerson"("groupId", "name");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtTransaction_groupId_idx" ON "DebtTransaction"("groupId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtTransaction_fromPersonId_idx" ON "DebtTransaction"("fromPersonId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "DebtTransaction_toPersonId_idx" ON "DebtTransaction"("toPersonId");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "DebtTransaction_groupId_requestId_key" ON "DebtTransaction"("groupId", "requestId");
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtGroup" ADD CONSTRAINT "DebtGroup_ownerId_fkey" FOREIGN KEY ("ownerId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtGroupMember" ADD CONSTRAINT "DebtGroupMember_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "DebtGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtGroupMember" ADD CONSTRAINT "DebtGroupMember_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtPerson" ADD CONSTRAINT "DebtPerson_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "DebtGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtTransaction" ADD CONSTRAINT "DebtTransaction_groupId_fkey" FOREIGN KEY ("groupId") REFERENCES "DebtGroup"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtTransaction" ADD CONSTRAINT "DebtTransaction_fromPersonId_fkey" FOREIGN KEY ("fromPersonId") REFERENCES "DebtPerson"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtTransaction" ADD CONSTRAINT "DebtTransaction_toPersonId_fkey" FOREIGN KEY ("toPersonId") REFERENCES "DebtPerson"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
||||||
|
-- AddForeignKey
|
||||||
|
ALTER TABLE "DebtTransaction" ADD CONSTRAINT "DebtTransaction_createdByUserId_fkey" FOREIGN KEY ("createdByUserId") REFERENCES "User"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||||
Reference in New Issue
Block a user