upsertCourseOffering method

Future<int> upsertCourseOffering({
  1. required int courseId,
  2. required int semesterId,
  3. required String number,
  4. int? phase,
  5. String? status,
  6. String? language,
  7. String? remarks,
  8. String? syllabusId,
})

Returns the ID of an existing course offering, or creates/updates one.

Implementation

Future<int> upsertCourseOffering({
  required int courseId,
  required int semesterId,
  required String number,
  int? phase,
  String? status,
  String? language,
  String? remarks,
  String? syllabusId,
}) async {
  return (await into(courseOfferings).insertReturning(
    CourseOfferingsCompanion.insert(
      course: courseId,
      semester: semesterId,
      number: number,
      phase: Value(phase),
      status: Value(status),
      language: Value(language),
      remarks: Value(remarks),
      syllabusId: Value(syllabusId),
    ),
    onConflict: DoUpdate(
      (old) => CourseOfferingsCompanion(
        course: Value(courseId),
        phase: Value(phase),
        status: Value(status),
        language: Value(language),
        remarks: Value(remarks),
        syllabusId: Value(syllabusId),
      ),
      target: [courseOfferings.number],
    ),
  )).id;
}