Files
CloudHome-Ops/lib/providers/devices_provider.dart

34 lines
1.1 KiB
Dart
Raw Permalink Normal View History

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