import 'package:riverpod_annotation/riverpod_annotation.dart'; import 'package:timetrack/features/projects/data/drift_projects_repository.dart'; import 'package:timetrack/features/projects/data/projects_repository.dart'; import 'package:timetrack/features/projects/domain/project.dart'; part 'projects_provider.g.dart'; @riverpod Stream> activeProjects(ActiveProjectsRef ref) => ref.watch(projectsRepositoryProvider).watchActive(); @riverpod Stream> allProjects(AllProjectsRef ref) => ref.watch(projectsRepositoryProvider).watchAll(); @riverpod class ProjectsNotifier extends _$ProjectsNotifier { @override Future build() async {} ProjectsRepository get _repo => ref.read(projectsRepositoryProvider); Future create({ required String name, required int colorValue, String? description, }) async { await _repo.create(name: name, colorValue: colorValue, description: description); } Future updateProject(Project project) => _repo.update(project); Future archive(int id) => _repo.archive(id); Future unarchive(int id) => _repo.unarchive(id); Future delete(int id) => _repo.delete(id); }