import 'package:riverpod_annotation/riverpod_annotation.dart'; import '../../data/repositories/stack_repository_impl.dart'; import '../../domain/entities/stack.dart'; part 'stacks_provider.g.dart'; /// Provides the list of all stacks. @riverpod Future> stacks(StacksRef ref) async { final repository = ref.watch(stackRepositoryProvider); return repository.getStacks(); } /// Provides a single stack by ID. @riverpod Future stack(StackRef ref, String id) async { final repository = ref.watch(stackRepositoryProvider); return repository.getStack(id); } /// Currently selected stack ID (null = all containers). @riverpod class SelectedStack extends _$SelectedStack { @override String? build() => null; void select(String? stackId) { state = stackId; } void clear() { state = null; } }