export const getSchematicByLessonID = async (lessonID: number) => {
const schematic = await db
.with("get_groups", () => findGroupsByLessonID(lessonID))
.with("get_attendances", () => findAttendancesByLessonID(lessonID))
.selectFrom("lesson")
.innerJoin("activity", "lesson.activityID", "activity.ID")
.innerJoin("module", "activity.moduleID", "module.ID")
.select((eb) => [
"lesson.ID",
"lesson.date",
"lesson.index",
jsonObjectFrom(
eb
.selectFrom("module")
.select([
"module.ID",
"module.name",
"module.abbreviation",
jsonObjectFrom(
eb
.selectFrom("color")
.select([
"color.ID",
"color.name",
"color.hex",
"color.transparency",
"color.textColor",
])
.whereRef("color.ID", "=", "module.colorID")
).as("color"),
])
.whereRef("module.ID", "=", "activity.moduleID")
).as("module"),
/* Other data */
])
.where("lesson.ID", "=", lessonID)
.executeTakeFirst();
return schematic;
};
export const getSchematicByLessonID = async (lessonID: number) => {
const schematic = await db
.with("get_groups", () => findGroupsByLessonID(lessonID))
.with("get_attendances", () => findAttendancesByLessonID(lessonID))
.selectFrom("lesson")
.innerJoin("activity", "lesson.activityID", "activity.ID")
.innerJoin("module", "activity.moduleID", "module.ID")
.select((eb) => [
"lesson.ID",
"lesson.date",
"lesson.index",
jsonObjectFrom(
eb
.selectFrom("module")
.select([
"module.ID",
"module.name",
"module.abbreviation",
jsonObjectFrom(
eb
.selectFrom("color")
.select([
"color.ID",
"color.name",
"color.hex",
"color.transparency",
"color.textColor",
])
.whereRef("color.ID", "=", "module.colorID")
).as("color"),
])
.whereRef("module.ID", "=", "activity.moduleID")
).as("module"),
/* Other data */
])
.where("lesson.ID", "=", lessonID)
.executeTakeFirst();
return schematic;
};