Skip to content

Commit 86925dc

Browse files
committed
Halloween db schema
1 parent 625ddff commit 86925dc

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
-- CreateTable
2+
CREATE TABLE "Infection" (
3+
"id" SERIAL NOT NULL,
4+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
5+
"infecteeId" INTEGER NOT NULL,
6+
"infectorId" INTEGER,
7+
8+
CONSTRAINT "Infection_pkey" PRIMARY KEY ("id"),
9+
CONSTRAINT "Infection_patient_zero_check" CHECK (
10+
CASE
11+
WHEN id <= 4 THEN true
12+
ELSE "infectorId" IS NOT NULL
13+
END
14+
)
15+
);
16+
17+
-- CreateIndex
18+
CREATE UNIQUE INDEX "Infection_infecteeId_unique" ON "Infection"("infecteeId");
19+
20+
-- CreateIndex
21+
CREATE INDEX "Infection_infecteeId_idx" ON "Infection"("infecteeId");
22+
23+
-- CreateIndex
24+
CREATE INDEX "Infection_infectorId_idx" ON "Infection"("infectorId");
25+
26+
-- AddForeignKey
27+
ALTER TABLE "Infection" ADD CONSTRAINT "Infection_infecteeId_fkey" FOREIGN KEY ("infecteeId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
28+
29+
-- AddForeignKey
30+
ALTER TABLE "Infection" ADD CONSTRAINT "Infection_infectorId_fkey" FOREIGN KEY ("infectorId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;

prisma/schema.prisma

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ model User {
153153
DirectPaymentSent DirectPayment[] @relation("DirectPaymentSent")
154154
UserSubTrust UserSubTrust[]
155155
CommentsViewAt CommentsViewAt[]
156+
infectedBy Infection? @relation("Infection_infectee")
157+
infectedByMe Infection[] @relation("Infection_infector")
156158
157159
@@index([photoId])
158160
@@index([createdAt], map: "users.created_at_index")
@@ -163,6 +165,18 @@ model User {
163165
@@map("users")
164166
}
165167

168+
model Infection {
169+
id Int @id @default(autoincrement())
170+
createdAt DateTime @default(now()) @map("created_at")
171+
infecteeId Int @unique(map: "Infection_infecteeId_unique")
172+
infectorId Int?
173+
infectee User @relation("Infection_infectee", fields: [infecteeId], references: [id], onDelete: Cascade)
174+
infector User? @relation("Infection_infector", fields: [infectorId], references: [id], onDelete: Cascade)
175+
176+
@@index([infecteeId])
177+
@@index([infectorId])
178+
}
179+
166180
enum OneDayReferralType {
167181
REFERRAL
168182
POST

0 commit comments

Comments
 (0)