- Backend: .NET 10 Minimal API + EF Core + PostgreSQL - Frontend: Flutter + Riverpod + GoRouter + Dio - AI: DeepSeek LLM + Qwen VLM (OpenAI-compatible) - Auth: SMS + JWT (access/refresh tokens) - Features: AI chat, health tracking, medication management, diet analysis, exercise plans, doctor consultations, report analysis
59 lines
1.9 KiB
Dart
59 lines
1.9 KiB
Dart
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'auth_provider.dart';
|
|
import '../services/health_service.dart';
|
|
|
|
/// 健康数据服务
|
|
final healthServiceProvider = Provider<HealthService>((ref) {
|
|
return HealthService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final userServiceProvider = Provider<UserService>((ref) {
|
|
return UserService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final medicationServiceProvider = Provider<MedicationService>((ref) {
|
|
return MedicationService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final dietServiceProvider = Provider<DietService>((ref) {
|
|
return DietService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final consultationServiceProvider = Provider<ConsultationService>((ref) {
|
|
return ConsultationService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
final exerciseServiceProvider = Provider<ExerciseService>((ref) {
|
|
return ExerciseService(ref.watch(apiClientProvider));
|
|
});
|
|
|
|
/// 最新健康数据 Provider
|
|
final latestHealthProvider = FutureProvider<Map<String, dynamic>>((ref) async {
|
|
final service = ref.watch(healthServiceProvider);
|
|
return service.getLatest();
|
|
});
|
|
|
|
/// 用药列表 Provider
|
|
final medicationListProvider = FutureProvider<List<Map<String, dynamic>>>((ref) async {
|
|
final service = ref.watch(medicationServiceProvider);
|
|
return service.getList();
|
|
});
|
|
|
|
/// 医生列表 Provider
|
|
final doctorListProvider = FutureProvider<List<Map<String, dynamic>>>((ref) async {
|
|
final service = ref.watch(consultationServiceProvider);
|
|
return service.getDoctors();
|
|
});
|
|
|
|
/// 问诊配额 Provider
|
|
final consultationQuotaProvider = FutureProvider<Map<String, dynamic>>((ref) async {
|
|
final service = ref.watch(consultationServiceProvider);
|
|
return service.getQuota();
|
|
});
|
|
|
|
/// 当前运动计划 Provider
|
|
final currentExercisePlanProvider = FutureProvider<Map<String, dynamic>?>((ref) async {
|
|
final service = ref.watch(exerciseServiceProvider);
|
|
return service.getCurrentPlan();
|
|
});
|