diff --git a/db/tables/assistant-semesters.ts b/db/tables/assistant-semesters.ts index 74855e5..4d72e34 100644 --- a/db/tables/assistant-semesters.ts +++ b/db/tables/assistant-semesters.ts @@ -7,10 +7,10 @@ import { assistantUsersTable } from "./users"; export const assistantSemestersTable = mainSchema.table( "assistantSemesters", { - assistantId: integer("semesterId") + assistantId: integer("assistantId") .references(() => assistantUsersTable.id) .notNull(), - semesterId: integer("assistantId") + semesterId: integer("semesterId") .references(() => semestersTable.id) .notNull(), isSubstitute: boolean("isSubstitute").notNull(), @@ -24,8 +24,14 @@ export const assistantSemestersTable = mainSchema.table( export const assistantSemestersRelations = relations( assistantSemestersTable, - ({ many }) => ({ - assistant: many(assistantUsersTable), - semester: many(semestersTable), + ({ one }) => ({ + assistant: one(assistantUsersTable, { + fields: [assistantSemestersTable.assistantId], + references: [assistantUsersTable.id], + }), + semester: one(semestersTable, { + fields: [assistantSemestersTable.semesterId], + references: [semestersTable.id], + }), }), ); diff --git a/db/tables/parent-meetings.ts b/db/tables/parent-meetings.ts new file mode 100644 index 0000000..1337298 --- /dev/null +++ b/db/tables/parent-meetings.ts @@ -0,0 +1,39 @@ +import { relations } from "drizzle-orm"; +import { + integer, + interval, + serial, + text, + timestamp, +} from "drizzle-orm/pg-core"; +import { mainSchema } from "./schema"; +import { semestersTable } from "./semesters"; +import { teamUsersTable } from "./users"; + +export const parentMeetingsTable = mainSchema.table("parentMeetings", { + id: serial("id").primaryKey(), + dateTime: timestamp("dateTime").notNull(), + duration: interval("duration").notNull(), + place: text("place").notNull(), + semesterId: integer("semesterId") + .notNull() + .references(() => semestersTable.id), + // id of the team user responsible for organizing and conducting the parent meeting + responsibleUserId: integer("responsibleUserId") + .notNull() + .references(() => teamUsersTable.id), +}); + +export const parentMeetingsRelations = relations( + parentMeetingsTable, + ({ one }) => ({ + semester: one(semestersTable, { + fields: [parentMeetingsTable.semesterId], + references: [semestersTable.id], + }), + teamUser: one(teamUsersTable, { + fields: [parentMeetingsTable.responsibleUserId], + references: [teamUsersTable.id], + }), + }), +);