Skip to content

Commit 964589b

Browse files
authored
feat(card): Added saved,get saved cards api and db schema (#695)
1 parent 9637c66 commit 964589b

5 files changed

Lines changed: 274 additions & 566 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-- CreateTable
2+
CREATE TABLE "saved_cards" (
3+
"id" TEXT NOT NULL,
4+
"user_id" TEXT NOT NULL,
5+
"card_id" TEXT NOT NULL,
6+
"saved_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
7+
8+
CONSTRAINT "saved_cards_pkey" PRIMARY KEY ("id")
9+
);
10+
11+
-- CreateIndex
12+
CREATE INDEX "saved_cards_user_id_idx" ON "saved_cards"("user_id");
13+
14+
-- CreateIndex
15+
CREATE INDEX "saved_cards_card_id_idx" ON "saved_cards"("card_id");
16+
17+
-- CreateIndex
18+
CREATE INDEX "saved_cards_user_id_saved_at_idx" ON "saved_cards"("user_id", "saved_at");
19+
20+
-- CreateIndex
21+
CREATE UNIQUE INDEX "saved_cards_user_id_card_id_key" ON "saved_cards"("user_id", "card_id");
22+
23+
-- AddForeignKey
24+
ALTER TABLE "saved_cards" ADD CONSTRAINT "saved_cards_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
25+
26+
-- AddForeignKey
27+
ALTER TABLE "saved_cards" ADD CONSTRAINT "saved_cards_card_id_fkey" FOREIGN KEY ("card_id") REFERENCES "cards"("id") ON DELETE CASCADE ON UPDATE CASCADE;

apps/backend/prisma/schema.prisma

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ model User {
4545
ownedTeams Team[] @relation("TeamOwner")
4646
teamMemberships TeamMember[] @relation("TeamMember")
4747
webhookEndpoints WebhookEndpoint[]
48+
savedCards SavedCard[]
4849
4950
@@map("users")
5051
}
@@ -127,13 +128,33 @@ model Card {
127128
128129
cardLinks CardLink[]
129130
views CardView[]
131+
savedBy SavedCard[]
130132
131133
132134
@@map("cards")
133135
@@index([userId])
134136
@@index([viewCount])
135137
}
136138

139+
model SavedCard {
140+
id String @id @default(uuid())
141+
142+
userId String @map("user_id")
143+
cardId String @map("card_id")
144+
145+
savedAt DateTime @default(now()) @map("saved_at")
146+
147+
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
148+
card Card @relation(fields: [cardId], references: [id], onDelete: Cascade)
149+
150+
@@unique([userId, cardId], name: "saved_card_unique")
151+
@@index([userId])
152+
@@index([cardId])
153+
@@index([userId, savedAt])
154+
155+
@@map("saved_cards")
156+
}
157+
137158
model CardLink {
138159
id String @id @default(uuid())
139160
cardId String @map("card_id")
@@ -301,4 +322,5 @@ model TeamMember {
301322
@@unique([userId, teamId])
302323
@@index([userId])
303324
@@map("team_members")
304-
}
325+
}
326+

0 commit comments

Comments
 (0)