import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../core/api/api_client.dart'; import '../core/auth/auth_state.dart'; import '../models/warehouse.dart'; import '../repositories/warehouse_repository.dart'; final warehouseRepositoryProvider = Provider((ref) { return WarehouseRepository(ref.watch(apiClientProvider)); }); final warehouseListProvider = AsyncNotifierProvider>( WarehouseListNotifier.new, ); class WarehouseListNotifier extends AsyncNotifier> { @override Future> build() { ref.watch(authStateProvider.select((s) => s.user?.shopId)); return ref.read(warehouseRepositoryProvider).list(); } Future reload() async { state = const AsyncValue.loading(); state = await AsyncValue.guard( () => ref.read(warehouseRepositoryProvider).list()); } Future createWarehouse(Map data) async { await ref.read(warehouseRepositoryProvider).create(data); await reload(); } Future updateWarehouse(int id, Map data) async { await ref.read(warehouseRepositoryProvider).update(id, data); await reload(); } Future deleteWarehouse(int id) async { await ref.read(warehouseRepositoryProvider).delete(id); await reload(); } }