34 lines
1.1 KiB
Dart
34 lines
1.1 KiB
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||
|
||
import '../models/alert.dart';
|
||
import '../models/device.dart';
|
||
import '../services/device_service.dart';
|
||
|
||
/// DeviceService 提供者。
|
||
final deviceServiceProvider =
|
||
Provider<DeviceService>((ref) => DeviceService());
|
||
|
||
/// 设备列表提供者(下拉刷新时调用 [ProviderRef.refresh] 即可)。
|
||
final devicesProvider = FutureProvider<List<Device>>((ref) {
|
||
return ref.watch(deviceServiceProvider).fetchDevices();
|
||
});
|
||
|
||
/// 按门店筛选的设备列表提供者(参数为门店 orgId,null 表示全部门店)。
|
||
final devicesByStoreProvider =
|
||
FutureProvider.family<List<Device>, String?>((ref, storeOrgId) {
|
||
return ref
|
||
.watch(deviceServiceProvider)
|
||
.fetchDevices(storeOrgId: storeOrgId);
|
||
});
|
||
|
||
/// 设备详情提供者(按设备 ID 参数化)。
|
||
final deviceDetailProvider =
|
||
FutureProvider.family<Device, String>((ref, deviceId) {
|
||
return ref.watch(deviceServiceProvider).fetchDeviceById(deviceId);
|
||
});
|
||
|
||
/// 告警列表提供者。
|
||
final alertsProvider = FutureProvider<List<Alert>>((ref) {
|
||
return ref.watch(deviceServiceProvider).fetchAlerts();
|
||
});
|