upsertTeacher method
Returns the ID of an existing teacher row, or creates/updates one.
Implementation
Future<int> upsertTeacher({
required String code,
required int semesterId,
required String nameZh,
String? nameEn,
}) async {
return (await into(teachers).insertReturning(
TeachersCompanion.insert(
code: code,
semester: semesterId,
nameZh: nameZh,
nameEn: Value(nameEn),
),
onConflict: DoUpdate(
(old) => TeachersCompanion(
nameZh: Value(nameZh),
nameEn: Value.absentIfNull(nameEn),
),
target: [teachers.code, teachers.semester],
),
)).id;
}