diff --git a/db/seeding/seeding-tables.ts b/db/seeding/seeding-tables.ts index e7340c5..9b3571e 100644 --- a/db/seeding/seeding-tables.ts +++ b/db/seeding/seeding-tables.ts @@ -6,16 +6,15 @@ import { teamsTable } from "@/db/tables/teams"; import { usersTable } from "@/db/tables/users"; export const seedingTables = { - departmentsTable, - fieldsOfStudyTable, - teamsTable, - usersTable, - // meetings, + //departmentsTable, + //fieldsOfStudyTable, + //teamsTable, + //usersTable, //teamUsersTable, these two tables dont work currently //assistantUsersTable, //teamApplicationsTable, - expensesTable, - applicationsTable, + //expensesTable, + //applicationsTable, // meetingsTable, // schoolsTable }; diff --git a/db/tables/applications.ts b/db/tables/applications.ts index 264868c..f8a39dc 100644 --- a/db/tables/applications.ts +++ b/db/tables/applications.ts @@ -12,6 +12,7 @@ import { import { teamsTable } from "@/db/tables/teams"; import { fieldsOfStudyTable } from "./fields-of-study"; import { interviewsTable } from "./interviews"; +import { semestersTable } from "./semesters"; export const gendersEnum = mainSchema.enum("gender", [ "female", @@ -30,6 +31,9 @@ export const applicationsTable = mainSchema.table("applications", { .references(() => fieldsOfStudyTable.id), yearOfStudy: integer("yearOfStudy").notNull(), phonenumber: text("phonenumber").notNull(), + semester: integer("semester") + .notNull() + .references(() => semestersTable.id), submitDate: date("submitDate", { mode: "date" }).defaultNow().notNull(), }); @@ -40,12 +44,15 @@ export const applicationsRelations = relations( fields: [applicationsTable.fieldOfStudyId], references: [fieldsOfStudyTable.id], }), + semesters: one(semestersTable, { + fields: [applicationsTable.semester], + references: [semestersTable.id], + }), assistantApplication: one(assistantApplicationsTable, { fields: [applicationsTable.id], references: [assistantApplicationsTable.id], }), teamApplication: many(teamApplicationsTable), - interview: many(interviewsTable), }), ); diff --git a/db/tables/semesters.ts b/db/tables/semesters.ts index f8d6bfb..d22cd64 100644 --- a/db/tables/semesters.ts +++ b/db/tables/semesters.ts @@ -6,6 +6,7 @@ import { serial, text, } from "drizzle-orm/pg-core"; +import { applicationsTable } from "./applications"; import { departmentsTable } from "./departments"; import { meetingsTable } from "./meetings"; import { mainSchema } from "./schema"; @@ -44,6 +45,7 @@ export const semestersRelations = relations( }), schoolAssistants: many(schoolAssignmentsTable), teamUsers: many(teamSemesterUsersTable), + applications: many(applicationsTable), meetings: many(meetingsTable), }), ); diff --git a/src/db-access/applications.ts b/src/db-access/applications.ts index 2fa95b2..328a731 100644 --- a/src/db-access/applications.ts +++ b/src/db-access/applications.ts @@ -37,6 +37,7 @@ export const selectTeamApplications = async ( motivationText: teamApplicationsTable.motivationText, biography: teamApplicationsTable.biography, teamInterest: teamApplicationsTable.teamInterest, + semester: applicationsTable.semester, submitDate: applicationsTable.submitDate, }) .from(teamApplicationsTable) @@ -71,6 +72,7 @@ export const selectTeamApplicationsByTeamId = async ( motivationText: teamApplicationsTable.motivationText, biography: teamApplicationsTable.biography, teamInterest: teamApplicationsTable.teamInterest, + semester: applicationsTable.semester, submitDate: applicationsTable.submitDate, }) .from(teamApplicationsTable) @@ -106,6 +108,7 @@ export const selectTeamApplicationsById = async ( motivationText: teamApplicationsTable.motivationText, biography: teamApplicationsTable.biography, teamInterest: teamApplicationsTable.teamInterest, + semester: applicationsTable.semester, submitDate: applicationsTable.submitDate, }) .from(teamApplicationsTable) @@ -138,6 +141,7 @@ export async function insertTeamApplication( fieldOfStudyId: teamApplication.fieldOfStudyId, yearOfStudy: teamApplication.yearOfStudy, phonenumber: teamApplication.phonenumber, + semester: teamApplication.semester, }) .returning(); const newApplicationId = newApplication[0].id; diff --git a/src/request-handling/applications.ts b/src/request-handling/applications.ts index 101c6e2..a3df681 100644 --- a/src/request-handling/applications.ts +++ b/src/request-handling/applications.ts @@ -37,6 +37,7 @@ export const applicationParser = z .string() .regex(/^\d{8}$/, "Phone number must be 8 digits") .describe("The phonenumber of the user applying for a team"), + semester: serialIdParser.describe("The semester the application is for"), }) .strict();