$$TeachersTableTableManager constructor

$$TeachersTableTableManager(
  1. _$AppDatabase db,
  2. $TeachersTable table
)

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,
                      ),
                  ];
                },
              );
            },
      ),
    );