feat: persist timetable and validate confirmed imports

This commit is contained in:
Codex
2026-10-12 23:18:51 +08:00
parent ae8e347e49
commit 808af007a2
13 changed files with 852 additions and 0 deletions
@@ -0,0 +1,25 @@
import '../domain/app_settings.dart';
import '../domain/course_occurrence.dart';
enum ReminderStatus { off, permissionDenied, exact, inexact, error }
class ReminderResult {
const ReminderResult(
this.status, {
this.scheduledCount = 0,
this.message = '',
});
final ReminderStatus status;
final int scheduledCount;
final String message;
}
abstract class NotificationService {
Future<ReminderResult> reconcile(
List<CourseOccurrence> occurrences,
AppSettings settings,
DateTime now,
);
Future<void> requestPermissions();
Future<void> cancelOwned();
}