import 'package:syncrow_web/pages/analytics/models/occupacy.dart'; import 'package:syncrow_web/pages/analytics/params/get_occupancy_param.dart'; import 'package:syncrow_web/pages/analytics/services/occupacy/occupacy_service.dart'; import 'package:syncrow_web/services/api/http_service.dart'; final class RemoteOccupancyService implements OccupacyService { const RemoteOccupancyService(this._httpService); final HTTPService _httpService; @override Future> load(GetOccupancyParam param) async { try { final response = await _httpService.get( path: '/occupancy/duration/space/${param.spaceUuid}', showServerMessage: true, queryParameters: param.toJson(), expectedResponseModel: (data) { final json = data as Map? ?? {}; final mappedData = json['data'] as List? ?? []; return mappedData.map((e) { final jsonData = e as Map; return Occupacy.fromJson(jsonData); }).toList(); }, ); return response; } catch (e) { throw Exception('Failed to load energy consumption per phase: $e'); } } }