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