Implementation
$$TeachersTableTableManager(_$AppDatabase db, $TeachersTable table)
: super(
TableManagerState(
db: db,
table: table,
createFilteringComposer: () =>
$$TeachersTableFilterComposer($db: db, $table: table),
createOrderingComposer: () =>
$$TeachersTableOrderingComposer($db: db, $table: table),
createComputedFieldComposer: () =>
$$TeachersTableAnnotationComposer($db: db, $table: table),
updateCompanionCallback:
({
Value<int> id = const Value.absent(),
Value<DateTime?> fetchedAt = const Value.absent(),
Value<String> code = const Value.absent(),
Value<int> semester = const Value.absent(),
Value<String> nameZh = const Value.absent(),
Value<String?> nameEn = const Value.absent(),
Value<String?> email = const Value.absent(),
Value<int?> department = const Value.absent(),
Value<String?> title = const Value.absent(),
Value<double?> teachingHours = const Value.absent(),
Value<String?> officeHoursNote = const Value.absent(),
}) => TeachersCompanion(
id: id,
fetchedAt: fetchedAt,
code: code,
semester: semester,
nameZh: nameZh,
nameEn: nameEn,
email: email,
department: department,
title: title,
teachingHours: teachingHours,
officeHoursNote: officeHoursNote,
),
createCompanionCallback:
({
Value<int> id = const Value.absent(),
Value<DateTime?> fetchedAt = const Value.absent(),
required String code,
required int semester,
required String nameZh,
Value<String?> nameEn = const Value.absent(),
Value<String?> email = const Value.absent(),
Value<int?> department = const Value.absent(),
Value<String?> title = const Value.absent(),
Value<double?> teachingHours = const Value.absent(),
Value<String?> officeHoursNote = const Value.absent(),
}) => TeachersCompanion.insert(
id: id,
fetchedAt: fetchedAt,
code: code,
semester: semester,
nameZh: nameZh,
nameEn: nameEn,
email: email,
department: department,
title: title,
teachingHours: teachingHours,
officeHoursNote: officeHoursNote,
),
withReferenceMapper: (p0) => p0
.map(
(e) => (
e.readTable(table),
$$TeachersTableReferences(db, table, e),
),
)
.toList(),
prefetchHooksCallback:
({
semester = false,
department = false,
courseOfferingTeachersRefs = false,
teacherOfficeHoursRefs = false,
userSemesterSummaryTutorsRefs = false,
}) {
return PrefetchHooks(
db: db,
explicitlyWatchedTables: [
if (courseOfferingTeachersRefs) db.courseOfferingTeachers,
if (teacherOfficeHoursRefs) db.teacherOfficeHours,
if (userSemesterSummaryTutorsRefs)
db.userSemesterSummaryTutors,
],
addJoins:
<
T extends TableManagerState<
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic,
dynamic
>
>(state) {
if (semester) {
state =
state.withJoin(
currentTable: table,
currentColumn: table.semester,
referencedTable: $$TeachersTableReferences
._semesterTable(db),
referencedColumn: $$TeachersTableReferences
._semesterTable(db)
.id,
)
as T;
}
if (department) {
state =
state.withJoin(
currentTable: table,
currentColumn: table.department,
referencedTable: $$TeachersTableReferences
._departmentTable(db),
referencedColumn: $$TeachersTableReferences
._departmentTable(db)
.id,
)
as T;
}
return state;
},
getPrefetchedDataCallback: (items) async {
return [
if (courseOfferingTeachersRefs)
await $_getPrefetchedData<
Teacher,
$TeachersTable,
CourseOfferingTeacher
>(
currentTable: table,
referencedTable: $$TeachersTableReferences
._courseOfferingTeachersRefsTable(db),
managerFromTypedResult: (p0) =>
$$TeachersTableReferences(
db,
table,
p0,
).courseOfferingTeachersRefs,
referencedItemsForCurrentItem:
(item, referencedItems) => referencedItems.where(
(e) => e.teacher == item.id,
),
typedResults: items,
),
if (teacherOfficeHoursRefs)
await $_getPrefetchedData<
Teacher,
$TeachersTable,
TeacherOfficeHour
>(
currentTable: table,
referencedTable: $$TeachersTableReferences
._teacherOfficeHoursRefsTable(db),
managerFromTypedResult: (p0) =>
$$TeachersTableReferences(
db,
table,
p0,
).teacherOfficeHoursRefs,
referencedItemsForCurrentItem:
(item, referencedItems) => referencedItems.where(
(e) => e.teacher == item.id,
),
typedResults: items,
),
if (userSemesterSummaryTutorsRefs)
await $_getPrefetchedData<
Teacher,
$TeachersTable,
UserSemesterSummaryTutor
>(
currentTable: table,
referencedTable: $$TeachersTableReferences
._userSemesterSummaryTutorsRefsTable(db),
managerFromTypedResult: (p0) =>
$$TeachersTableReferences(
db,
table,
p0,
).userSemesterSummaryTutorsRefs,
referencedItemsForCurrentItem:
(item, referencedItems) => referencedItems.where(
(e) => e.teacher == item.id,
),
typedResults: items,
),
];
},
);
},
),
);