$$CourseOfferingsTableTableManager constructor

$$CourseOfferingsTableTableManager(
  1. _$AppDatabase db,
  2. $CourseOfferingsTable table
)

Implementation

$$CourseOfferingsTableTableManager(
  _$AppDatabase db,
  $CourseOfferingsTable table,
) : super(
      TableManagerState(
        db: db,
        table: table,
        createFilteringComposer: () =>
            $$CourseOfferingsTableFilterComposer($db: db, $table: table),
        createOrderingComposer: () =>
            $$CourseOfferingsTableOrderingComposer($db: db, $table: table),
        createComputedFieldComposer: () =>
            $$CourseOfferingsTableAnnotationComposer($db: db, $table: table),
        updateCompanionCallback:
            ({
              Value<int> id = const Value.absent(),
              Value<DateTime?> fetchedAt = const Value.absent(),
              Value<int> course = const Value.absent(),
              Value<int> semester = const Value.absent(),
              Value<String> number = const Value.absent(),
              Value<int> phase = const Value.absent(),
              Value<CourseType> courseType = const Value.absent(),
              Value<String?> status = const Value.absent(),
              Value<String?> language = const Value.absent(),
              Value<String?> remarks = const Value.absent(),
              Value<int?> enrolled = const Value.absent(),
              Value<int?> withdrawn = const Value.absent(),
              Value<String?> syllabusId = const Value.absent(),
              Value<DateTime?> syllabusUpdatedAt = const Value.absent(),
              Value<String?> objective = const Value.absent(),
              Value<String?> weeklyPlan = const Value.absent(),
              Value<String?> evaluation = const Value.absent(),
              Value<String?> textbooks = const Value.absent(),
            }) => CourseOfferingsCompanion(
              id: id,
              fetchedAt: fetchedAt,
              course: course,
              semester: semester,
              number: number,
              phase: phase,
              courseType: courseType,
              status: status,
              language: language,
              remarks: remarks,
              enrolled: enrolled,
              withdrawn: withdrawn,
              syllabusId: syllabusId,
              syllabusUpdatedAt: syllabusUpdatedAt,
              objective: objective,
              weeklyPlan: weeklyPlan,
              evaluation: evaluation,
              textbooks: textbooks,
            ),
        createCompanionCallback:
            ({
              Value<int> id = const Value.absent(),
              Value<DateTime?> fetchedAt = const Value.absent(),
              required int course,
              required int semester,
              required String number,
              required int phase,
              required CourseType courseType,
              Value<String?> status = const Value.absent(),
              Value<String?> language = const Value.absent(),
              Value<String?> remarks = const Value.absent(),
              Value<int?> enrolled = const Value.absent(),
              Value<int?> withdrawn = const Value.absent(),
              Value<String?> syllabusId = const Value.absent(),
              Value<DateTime?> syllabusUpdatedAt = const Value.absent(),
              Value<String?> objective = const Value.absent(),
              Value<String?> weeklyPlan = const Value.absent(),
              Value<String?> evaluation = const Value.absent(),
              Value<String?> textbooks = const Value.absent(),
            }) => CourseOfferingsCompanion.insert(
              id: id,
              fetchedAt: fetchedAt,
              course: course,
              semester: semester,
              number: number,
              phase: phase,
              courseType: courseType,
              status: status,
              language: language,
              remarks: remarks,
              enrolled: enrolled,
              withdrawn: withdrawn,
              syllabusId: syllabusId,
              syllabusUpdatedAt: syllabusUpdatedAt,
              objective: objective,
              weeklyPlan: weeklyPlan,
              evaluation: evaluation,
              textbooks: textbooks,
            ),
        withReferenceMapper: (p0) => p0
            .map(
              (e) => (
                e.readTable(table),
                $$CourseOfferingsTableReferences(db, table, e),
              ),
            )
            .toList(),
        prefetchHooksCallback:
            ({
              course = false,
              semester = false,
              courseOfferingTeachersRefs = false,
              courseOfferingClassesRefs = false,
              courseOfferingStudentsRefs = false,
              schedulesRefs = false,
              materialsRefs = false,
              scoresRefs = false,
            }) {
              return PrefetchHooks(
                db: db,
                explicitlyWatchedTables: [
                  if (courseOfferingTeachersRefs) db.courseOfferingTeachers,
                  if (courseOfferingClassesRefs) db.courseOfferingClasses,
                  if (courseOfferingStudentsRefs) db.courseOfferingStudents,
                  if (schedulesRefs) db.schedules,
                  if (materialsRefs) db.materials,
                  if (scoresRefs) db.scores,
                ],
                addJoins:
                    <
                      T extends TableManagerState<
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic,
                        dynamic
                      >
                    >(state) {
                      if (course) {
                        state =
                            state.withJoin(
                                  currentTable: table,
                                  currentColumn: table.course,
                                  referencedTable:
                                      $$CourseOfferingsTableReferences
                                          ._courseTable(db),
                                  referencedColumn:
                                      $$CourseOfferingsTableReferences
                                          ._courseTable(db)
                                          .id,
                                )
                                as T;
                      }
                      if (semester) {
                        state =
                            state.withJoin(
                                  currentTable: table,
                                  currentColumn: table.semester,
                                  referencedTable:
                                      $$CourseOfferingsTableReferences
                                          ._semesterTable(db),
                                  referencedColumn:
                                      $$CourseOfferingsTableReferences
                                          ._semesterTable(db)
                                          .id,
                                )
                                as T;
                      }

                      return state;
                    },
                getPrefetchedDataCallback: (items) async {
                  return [
                    if (courseOfferingTeachersRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        CourseOfferingTeacher
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._courseOfferingTeachersRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).courseOfferingTeachersRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                    if (courseOfferingClassesRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        CourseOfferingClassesData
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._courseOfferingClassesRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).courseOfferingClassesRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                    if (courseOfferingStudentsRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        CourseOfferingStudent
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._courseOfferingStudentsRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).courseOfferingStudentsRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                    if (schedulesRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        Schedule
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._schedulesRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).schedulesRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                    if (materialsRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        Material
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._materialsRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).materialsRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                    if (scoresRefs)
                      await $_getPrefetchedData<
                        CourseOffering,
                        $CourseOfferingsTable,
                        Score
                      >(
                        currentTable: table,
                        referencedTable: $$CourseOfferingsTableReferences
                            ._scoresRefsTable(db),
                        managerFromTypedResult: (p0) =>
                            $$CourseOfferingsTableReferences(
                              db,
                              table,
                              p0,
                            ).scoresRefs,
                        referencedItemsForCurrentItem:
                            (item, referencedItems) => referencedItems.where(
                              (e) => e.courseOffering == item.id,
                            ),
                        typedResults: items,
                      ),
                  ];
                },
              );
            },
      ),
    );