diff --git a/firka/lib/helpers/db/models/homework_cache_model.dart b/firka/lib/helpers/db/models/homework_cache_model.dart index 6ab664b..1090ad7 100644 --- a/firka/lib/helpers/db/models/homework_cache_model.dart +++ b/firka/lib/helpers/db/models/homework_cache_model.dart @@ -27,3 +27,40 @@ Future resetOldHomeworkCache(Isar isar) async { await isar.homeworkCacheModels.deleteAll(weeksToRemove); }); } + +@collection +class HomeworkDoneModel { + Id? id; + + late String homeworkId; + late DateTime doneAt; + + HomeworkDoneModel(); + +} +Future markAsDone(Isar isar, String homeWorkUid) async { + await isar.writeTxn(() async { + await isar.homeworkDoneModels.put(HomeworkDoneModel() + ..homeworkId = homeWorkUid + ..doneAt = DateTime.now()); + }); +} + +Future markAsNotDone(Isar isar, String homeWorkUid) async { + await isar.writeTxn(() async { + final idsToDelete = await isar.homeworkDoneModels + .filter() + .homeworkIdEqualTo(homeWorkUid) + .idProperty() + .findAll(); + await isar.homeworkDoneModels.deleteAll(idsToDelete); + }); +} + +Future isHomeworkDone(Isar isar, String homeWorkUid) async { + var existing = await isar.homeworkDoneModels + .filter() + .homeworkIdEqualTo(homeWorkUid) + .findFirst(); + return existing != null; +} \ No newline at end of file