import '../core/api_client.dart'; class HealthService { final ApiClient _api; HealthService(this._api); Future> getLatest() async { final res = await _api.get('/api/health-records/latest'); return res.data['data'] ?? {}; } } class UserService { final ApiClient _api; UserService(this._api); Future?> getProfile() async { final res = await _api.get('/api/user/profile'); return res.data['data']; } Future updateProfile({ String? name, String? gender, String? birthDate, }) async { await _api.put( '/api/user/profile', data: {'name': name, 'gender': gender, 'birthDate': birthDate}, ); } Future?> getHealthArchive() async { final res = await _api.get('/api/user/health-archive'); return res.data['data']; } Future updateHealthArchive(Map data) async { await _api.put('/api/user/health-archive', data: data); } Future deleteAccount() async { await _api.delete('/api/user/account'); } } class MedicationService { final ApiClient _api; MedicationService(this._api); Future>> getList() async { final res = await _api.get('/api/medications'); final list = res.data['data'] as List? ?? []; return list.cast>(); } Future create(Map data) async { await _api.post('/api/medications', data: data); } Future update(String id, Map data) async { await _api.put('/api/medications/$id', data: data); } Future>> getMedications(String filter) async { final params = {}; if (filter.isNotEmpty) params['filter'] = filter; final res = await _api.get( '/api/medications', queryParameters: params.isNotEmpty ? params : null, ); final list = res.data['data'] as List? ?? []; return list.cast>(); } Future deleteMedication(String id) async { await _api.delete('/api/medications/$id'); } Future confirm(String id) async { await _api.post('/api/medications/$id/confirm'); } Future>> getReminders() async { final res = await _api.get('/api/medications/reminders'); final list = res.data['data'] as List? ?? []; return list.cast>(); } } class DietService { final ApiClient _api; DietService(this._api); Future>> getRecords({ String? date, String? mealType, }) async { final params = {}; if (date != null) params['date'] = date; if (mealType != null) params['mealType'] = mealType; final res = await _api.get('/api/diet-records', queryParameters: params); final list = res.data['data'] as List? ?? []; return list.cast>(); } Future create(Map data) async { await _api.post('/api/diet-records', data: data); } Future deleteRecord(String id) async { await _api.delete('/api/diet-records/$id'); } Future updateRecord(String id, Map data) async { await _api.put('/api/diet-records/$id', data: data); } } class ConsultationService { final ApiClient _api; ConsultationService(this._api); Future>> getDoctors() async { final res = await _api.get('/api/doctors'); final list = res.data['data'] as List? ?? []; return list.cast>(); } } class FollowUpService { final ApiClient _api; FollowUpService(this._api); Future>> getList() async { final res = await _api.get('/api/follow-ups'); final list = res.data['data'] as List? ?? []; return list.cast>(); } } class ExerciseService { final ApiClient _api; ExerciseService(this._api); Future?> getCurrentPlan() async { final res = await _api.get('/api/exercise-plans/current'); return res.data['data']; } Future createPlanSimple(Map data) async { await _api.post('/api/exercise-plans', data: data); } Future deletePlan(String id) async { await _api.delete('/api/exercise-plans/$id'); } Future checkIn(String itemId) async { await _api.post('/api/exercise-plans/items/$itemId/checkin'); } Future>> getPlans() async { final res = await _api.get('/api/exercise-plans'); return (res.data['data'] as List?)?.cast>() ?? []; } Future?> getPlanDetail(String id) async { final res = await _api.get('/api/exercise-plans/$id'); return res.data['data']; } }