timetracker/lib/features/entries/domain/entries_provider.dart
2026-08-03 21:51:48 +02:00

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);
}