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