[questions][chore] update to use company table values

pull/351/head
hpkoh 3 years ago
parent d3c0c21f1b
commit 680708aaee

@ -0,0 +1,13 @@
/*
Warnings:
- You are about to drop the column `company` on the `QuestionsQuestionEncounter` table. All the data in the column will be lost.
- Added the required column `companyId` to the `QuestionsQuestionEncounter` table without a default value. This is not possible if the table is not empty.
*/
-- AlterTable
ALTER TABLE "QuestionsQuestionEncounter" DROP COLUMN "company",
ADD COLUMN "companyId" TEXT NOT NULL;
-- AddForeignKey
ALTER TABLE "QuestionsQuestionEncounter" ADD CONSTRAINT "QuestionsQuestionEncounter_companyId_fkey" FOREIGN KEY ("companyId") REFERENCES "Company"("id") ON DELETE SET NULL ON UPDATE CASCADE;

@ -96,6 +96,8 @@ model Company {
logoUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
questionsQuestionEncounter QuestionsQuestionEncounter[]
}
// Start of Resumes project models.
@ -202,14 +204,15 @@ model QuestionsQuestionEncounter {
id String @id @default(cuid())
questionId String
userId String?
// TODO: sync with models
company String @db.Text
// TODO: sync with models (location, role)
companyId String
location String @db.Text
role String @db.Text
seenAt DateTime
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
company Company? @relation(fields: [companyId], references: [id], onDelete: SetNull)
user User? @relation(fields: [userId], references: [id], onDelete: SetNull)
question QuestionsQuestion @relation(fields: [questionId], references: [id], onDelete: Cascade)
}

@ -59,7 +59,7 @@ export const questionsQuestionRouter = createProtectedRouter()
const encounter = data.encounters[i];
const matchCompany =
input.companies.length === 0 ||
input.companies.includes(encounter.company);
input.companies.includes(encounter.company!.id);
const matchLocation =
input.locations.length === 0 ||
input.locations.includes(encounter.location);
@ -93,7 +93,7 @@ export const questionsQuestionRouter = createProtectedRouter()
);
const question: Question = {
company: data.encounters[0].company,
company: data.encounters[0].company!.name ?? 'Unknown company',
content: data.content,
id: data.id,
location: data.encounters[0].location ?? 'Unknown location',
@ -166,7 +166,7 @@ export const questionsQuestionRouter = createProtectedRouter()
);
const question: Question = {
company: questionData.encounters[0].company,
company: questionData.encounters[0].company!.name ?? 'Unknown company',
content: questionData.content,
id: questionData.id,
location: questionData.encounters[0].location ?? 'Unknown location',
@ -184,7 +184,7 @@ export const questionsQuestionRouter = createProtectedRouter()
})
.mutation('create', {
input: z.object({
company: z.string(),
companyId: z.string(),
content: z.string(),
location: z.string(),
questionType: z.nativeEnum(QuestionsQuestionType),
@ -194,13 +194,13 @@ export const questionsQuestionRouter = createProtectedRouter()
async resolve({ ctx, input }) {
const userId = ctx.session?.user?.id;
const question = await ctx.prisma.questionsQuestion.create({
return await ctx.prisma.questionsQuestion.create({
data: {
content: input.content,
encounters: {
create: [
{
company: input.company,
company: input.companyId,
location: input.location,
role: input.role,
seenAt: input.seenAt,
@ -212,20 +212,6 @@ export const questionsQuestionRouter = createProtectedRouter()
userId,
},
});
// Create question encounter
await ctx.prisma.questionsQuestionEncounter.create({
data: {
company: input.company,
location: input.location,
questionId: question.id,
role: input.role,
seenAt: input.seenAt,
userId,
},
});
return question;
},
})
.mutation('update', {

@ -1,3 +1,5 @@
import type { QuestionsQuestionType } from '@prisma/client';
export type Question = {
// TODO: company, location, role maps
company: string;
@ -9,7 +11,7 @@ export type Question = {
numVotes: number;
role: string;
seenAt: Date;
type: stringl;
type: QuestionsQuestionType;
updatedAt: Date;
user: string;
};

Loading…
Cancel
Save