31 lines
1 KiB
Dart
31 lines
1 KiB
Dart
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
|
|
import 'package:timetrack/features/entries/data/drift_entries_repository.dart';
|
|
import 'package:timetrack/features/entries/data/entries_repository.dart';
|
|
import 'package:timetrack/features/entries/domain/time_entry.dart';
|
|
|
|
part 'entries_provider.g.dart';
|
|
|
|
@riverpod
|
|
Stream<List<TimeEntry>> entriesByDateRange(
|
|
EntriesByDateRangeRef ref, {
|
|
required DateTime rangeFrom,
|
|
required DateTime rangeTo,
|
|
}) =>
|
|
ref.watch(timeEntriesRepositoryProvider).watchByDateRange(rangeFrom, rangeTo);
|
|
|
|
@riverpod
|
|
Stream<List<TimeEntry>> allEntries(AllEntriesRef ref) =>
|
|
ref.watch(timeEntriesRepositoryProvider).watchAll();
|
|
|
|
@riverpod
|
|
class EntriesNotifier extends _$EntriesNotifier {
|
|
@override
|
|
Future<void> build() async {}
|
|
|
|
TimeEntriesRepository get _repo => ref.read(timeEntriesRepositoryProvider);
|
|
|
|
Future<void> create(TimeEntry entry) => _repo.create(entry);
|
|
Future<void> updateEntry(TimeEntry entry) => _repo.update(entry);
|
|
Future<void> delete(int id) => _repo.delete(id);
|
|
}
|