diff --git a/apps/portal/prisma/migrations/20221023100925_update_last_seen_val_to_be_optional/migration.sql b/apps/portal/prisma/migrations/20221023100925_update_last_seen_val_to_be_optional/migration.sql new file mode 100644 index 00000000..e4c76fc9 --- /dev/null +++ b/apps/portal/prisma/migrations/20221023100925_update_last_seen_val_to_be_optional/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "QuestionsQuestion" ALTER COLUMN "lastSeenAt" DROP NOT NULL; diff --git a/apps/portal/prisma/schema.prisma b/apps/portal/prisma/schema.prisma index f32471f1..0a94dad9 100644 --- a/apps/portal/prisma/schema.prisma +++ b/apps/portal/prisma/schema.prisma @@ -405,7 +405,7 @@ model QuestionsQuestion { userId String? content String @db.Text questionType QuestionsQuestionType - lastSeenAt DateTime + lastSeenAt DateTime? upvotes Int @default(0) createdAt DateTime @default(now()) updatedAt DateTime @updatedAt diff --git a/apps/portal/src/server/router/questions-question-encounter-router.ts b/apps/portal/src/server/router/questions-question-encounter-router.ts index eab639cf..8102b466 100644 --- a/apps/portal/src/server/router/questions-question-encounter-router.ts +++ b/apps/portal/src/server/router/questions-question-encounter-router.ts @@ -4,7 +4,7 @@ import { TRPCError } from '@trpc/server'; import { createProtectedRouter } from './context'; import type { AggregatedQuestionEncounter } from '~/types/questions'; -import { SortOrder } from '~/types/questions'; +import { SortOrder } from '~/types/questions.d'; export const questionsQuestionEncounterRouter = createProtectedRouter() @@ -79,7 +79,7 @@ export const questionsQuestionEncounterRouter = createProtectedRouter() }, }); - if (questionToUpdate < input.seenAt) { + if (questionToUpdate!.lastSeenAt < input.seenAt) { await tx.questionsQuestion.update({ data: { lastSeenAt : input.seenAt, @@ -135,24 +135,22 @@ export const questionsQuestionEncounterRouter = createProtectedRouter() }, }); - if (questionToUpdate.lastSeenAt === questionEncounterToUpdate.seenAt) { + if (questionToUpdate!.lastSeenAt === questionEncounterToUpdate.seenAt) { const latestEncounter = await ctx.prisma.questionsQuestionEncounter.findFirst({ orderBy: { seenAt: SortOrder.DESC, }, where: { - questionId: questionToUpdate.questionId, + questionId: questionToUpdate!.id, }, }); - const lastSeenVal = latestEncounter ? latestEncounter!.seenAt : null; - await tx.questionsQuestion.update({ data: { - lastSeenAt : lastSeenVal, + lastSeenAt : latestEncounter!.seenAt, }, where: { - id: questionToUpdate.questionId, + id: questionToUpdate!.id, }, }); } @@ -197,13 +195,13 @@ export const questionsQuestionEncounterRouter = createProtectedRouter() }, }); - if (questionToUpdate.lastSeenAt === questionEncounterToDelete.seenAt) { + if (questionToUpdate!.lastSeenAt === questionEncounterToDelete.seenAt) { const latestEncounter = await ctx.prisma.questionsQuestionEncounter.findFirst({ orderBy: { seenAt: SortOrder.DESC, }, where: { - questionId: questionToUpdate.questionId, + questionId: questionToUpdate!.id, }, }); @@ -214,7 +212,7 @@ export const questionsQuestionEncounterRouter = createProtectedRouter() lastSeenAt : lastSeenVal, }, where: { - id: questionToUpdate.questionId, + id: questionToUpdate!.id, }, }); }