From ad2b7c90785492af7fca7b789aca7900abb66b0b Mon Sep 17 00:00:00 2001 From: mnseok Date: Sun, 30 Aug 2026 06:30:55 +0000 Subject: [PATCH 1/3] fix(be): update registerContest hasRegistered --- .../client/src/contest/contest.service.ts | 5 +-- apps/backend/prisma/schema.prisma | 38 +++++++++---------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/apps/backend/apps/client/src/contest/contest.service.ts b/apps/backend/apps/client/src/contest/contest.service.ts index f6b4109f73..63cd8f9a85 100644 --- a/apps/backend/apps/client/src/contest/contest.service.ts +++ b/apps/backend/apps/client/src/contest/contest.service.ts @@ -274,9 +274,8 @@ export class ContestService { invitationCode: true } }), - this.prisma.contestRecord.findFirst({ - where: { userId, contestId }, - select: { id: true } + this.prisma.userContest.findFirst({ + where: { contestId, userId, role: ContestRole.Participant } }) ]) diff --git a/apps/backend/prisma/schema.prisma b/apps/backend/prisma/schema.prisma index c1f617541e..5b5588cd93 100644 --- a/apps/backend/prisma/schema.prisma +++ b/apps/backend/prisma/schema.prisma @@ -996,25 +996,25 @@ model PushSubscription { } model CourseQnA { - id Int @id @default(autoincrement()) - order Int - createdById Int? @map("created_by_id") - groupId Int @map("group_id") - problemId Int? @map("problem_id") - assignmentId Int? @map("assignment_id") - title String - content String - category QnACategory @default(General) - isResolved Boolean @default(false) @map("is_resolved") - isPrivate Boolean @default(false) @map("is_private") - createTime DateTime @default(now()) @map("create_time") - readBy Int[] @map("read_by") - - createdBy User? @relation("CreatedByUserCourseQnA", fields: [createdById], references: [id], onDelete: SetNull) - group Group @relation(fields: [groupId], references: [id], onDelete: Cascade) - problem Problem? @relation("ProblemToCourseQnA", fields: [problemId], references: [id], onDelete: Cascade) - assignment Assignment? @relation(fields: [assignmentId], references: [id], onDelete: SetNull) - comments CourseQnAComment[] + id Int @id @default(autoincrement()) + order Int + createdById Int? @map("created_by_id") + groupId Int @map("group_id") + problemId Int? @map("problem_id") + assignmentId Int? @map("assignment_id") + title String + content String + category QnACategory @default(General) + isResolved Boolean @default(false) @map("is_resolved") + isPrivate Boolean @default(false) @map("is_private") + createTime DateTime @default(now()) @map("create_time") + readBy Int[] @map("read_by") + + createdBy User? @relation("CreatedByUserCourseQnA", fields: [createdById], references: [id], onDelete: SetNull) + group Group @relation(fields: [groupId], references: [id], onDelete: Cascade) + problem Problem? @relation("ProblemToCourseQnA", fields: [problemId], references: [id], onDelete: Cascade) + assignment Assignment? @relation(fields: [assignmentId], references: [id], onDelete: SetNull) + comments CourseQnAComment[] @@unique([groupId, order]) @@map("course_qna") From 03b19b3b9a6c85b64ebd03332c83d91741dcbcfc Mon Sep 17 00:00:00 2001 From: mnseok Date: Sun, 30 Aug 2026 09:19:15 +0000 Subject: [PATCH 2/3] fix(be): update getContests registeredContestIds --- apps/backend/apps/client/src/contest/contest.service.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/backend/apps/client/src/contest/contest.service.ts b/apps/backend/apps/client/src/contest/contest.service.ts index 63cd8f9a85..baf7a0df4c 100644 --- a/apps/backend/apps/client/src/contest/contest.service.ts +++ b/apps/backend/apps/client/src/contest/contest.service.ts @@ -63,13 +63,11 @@ export class ContestService { const registeredContestIds = new Set() if (userId) { - const userRecords = await this.prisma.contestRecord.findMany({ - where: { userId }, + const userContests = await this.prisma.userContest.findMany({ + where: { userId, role: ContestRole.Participant }, select: { contestId: true } }) - userRecords.forEach((record) => - registeredContestIds.add(record.contestId) - ) + userContests.forEach((uc) => registeredContestIds.add(uc.contestId)) } const searchFilter = search From 2308211916581288f572ea1e098d8d4e003929ec Mon Sep 17 00:00:00 2001 From: mnseok Date: Sun, 30 Aug 2026 09:52:52 +0000 Subject: [PATCH 3/3] chore(be): remove unintended schema change --- apps/backend/prisma/schema.prisma | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/apps/backend/prisma/schema.prisma b/apps/backend/prisma/schema.prisma index 5b5588cd93..c1f617541e 100644 --- a/apps/backend/prisma/schema.prisma +++ b/apps/backend/prisma/schema.prisma @@ -996,25 +996,25 @@ model PushSubscription { } model CourseQnA { - id Int @id @default(autoincrement()) - order Int - createdById Int? @map("created_by_id") - groupId Int @map("group_id") - problemId Int? @map("problem_id") - assignmentId Int? @map("assignment_id") - title String - content String - category QnACategory @default(General) - isResolved Boolean @default(false) @map("is_resolved") - isPrivate Boolean @default(false) @map("is_private") - createTime DateTime @default(now()) @map("create_time") - readBy Int[] @map("read_by") - - createdBy User? @relation("CreatedByUserCourseQnA", fields: [createdById], references: [id], onDelete: SetNull) - group Group @relation(fields: [groupId], references: [id], onDelete: Cascade) - problem Problem? @relation("ProblemToCourseQnA", fields: [problemId], references: [id], onDelete: Cascade) - assignment Assignment? @relation(fields: [assignmentId], references: [id], onDelete: SetNull) - comments CourseQnAComment[] + id Int @id @default(autoincrement()) + order Int + createdById Int? @map("created_by_id") + groupId Int @map("group_id") + problemId Int? @map("problem_id") + assignmentId Int? @map("assignment_id") + title String + content String + category QnACategory @default(General) + isResolved Boolean @default(false) @map("is_resolved") + isPrivate Boolean @default(false) @map("is_private") + createTime DateTime @default(now()) @map("create_time") + readBy Int[] @map("read_by") + + createdBy User? @relation("CreatedByUserCourseQnA", fields: [createdById], references: [id], onDelete: SetNull) + group Group @relation(fields: [groupId], references: [id], onDelete: Cascade) + problem Problem? @relation("ProblemToCourseQnA", fields: [problemId], references: [id], onDelete: Cascade) + assignment Assignment? @relation(fields: [assignmentId], references: [id], onDelete: SetNull) + comments CourseQnAComment[] @@unique([groupId, order]) @@map("course_qna")