feat: persist timetable and validate confirmed imports
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import '../domain/course_occurrence.dart';
|
||||
|
||||
class DeviceCalendar {
|
||||
const DeviceCalendar(this.id, this.name);
|
||||
final String id, name;
|
||||
}
|
||||
|
||||
abstract class CalendarService {
|
||||
Future<bool> requestAccess();
|
||||
Future<List<DeviceCalendar>> listWritableCalendars();
|
||||
Future<Map<String, String>> sync(
|
||||
List<CourseOccurrence> occurrences,
|
||||
String calendarId,
|
||||
Map<String, String> knownEventIds,
|
||||
);
|
||||
Future<void> deleteOwned(Map<String, String> eventIds);
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user