From f158b5a02e3df70bc874ad62e9cc6756e0014ae3 Mon Sep 17 00:00:00 2001 From: rca Date: Mon, 17 Jun 2024 00:12:11 +0900 Subject: [PATCH] =?UTF-8?q?=E3=81=84=E3=82=8D=E3=81=84=E3=82=8D=E3=81=A4?= =?UTF-8?q?=E3=81=84=E3=81=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240616151203_add_tables_1/migration.sql | 44 +++++++++++++++++++ prisma/schema.prisma | 42 +++++++++++++++--- 2 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 prisma/migrations/20240616151203_add_tables_1/migration.sql diff --git a/prisma/migrations/20240616151203_add_tables_1/migration.sql b/prisma/migrations/20240616151203_add_tables_1/migration.sql new file mode 100644 index 0000000..e5dcb48 --- /dev/null +++ b/prisma/migrations/20240616151203_add_tables_1/migration.sql @@ -0,0 +1,44 @@ +-- CreateTable +CREATE TABLE "Task" ( + "id" TEXT NOT NULL, + "display_name" TEXT NOT NULL, + "iconEmoji" TEXT NOT NULL, + "bg_color" TEXT NOT NULL, + "user_id" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "reward" INTEGER NOT NULL, + + CONSTRAINT "Task_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Child" ( + "id" TEXT NOT NULL, + "name" TEXT NOT NULL, + "linked_user_id" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Child_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "TaskCompletion" ( + "id" TEXT NOT NULL, + "task_id" TEXT NOT NULL, + "child_id" TEXT NOT NULL, + "registerd_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "TaskCompletion_pkey" PRIMARY KEY ("id") +); + +-- AddForeignKey +ALTER TABLE "Task" ADD CONSTRAINT "Task_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Child" ADD CONSTRAINT "Child_linked_user_id_fkey" FOREIGN KEY ("linked_user_id") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "TaskCompletion" ADD CONSTRAINT "TaskCompletion_task_id_fkey" FOREIGN KEY ("task_id") REFERENCES "Task"("id") ON DELETE RESTRICT ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "TaskCompletion" ADD CONSTRAINT "TaskCompletion_child_id_fkey" FOREIGN KEY ("child_id") REFERENCES "Child"("id") ON DELETE RESTRICT ON UPDATE CASCADE; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ffa4111..3e344ec 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -14,9 +14,41 @@ datasource db { } model User { - id String @id @default(cuid()) - email String @unique - password String - name String - created_at DateTime @default(now()) + id String @id @default(cuid()) + email String @unique + password String + name String + created_at DateTime @default(now()) + Task Task[] + Child Child[] +} + +model Task { + id String @id @default(cuid()) + display_name String + iconEmoji String + bg_color String + user_id String + created_at DateTime @default(now()) + reward Int + user User @relation(fields: [user_id], references: [id]) + TaskCompletion TaskCompletion[] +} + +model Child { + id String @id @default(cuid()) + name String + linked_user_id String + created_at DateTime @default(now()) + user User @relation(fields: [linked_user_id], references: [id]) + TaskCompletion TaskCompletion[] +} + +model TaskCompletion { + id String @id @default(cuid()) + task_id String + child_id String + registerd_at DateTime @default(now()) + task Task @relation(fields: [task_id], references: [id]) + child Child @relation(fields: [child_id], references: [id]) }