From 11fb9e4894665b8924c6a54bc3d86c7cb20048bc Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Sun, 4 May 2025 14:20:52 +0300 Subject: [PATCH] Abstracted `EnergyConsumptionByPhasesService`, and created a fake implementation that returns mock data, which also simulates a network delay. --- .../energy_consumption_by_phases_service.dart | 8 +++++ ..._energy_consumption_by_phases_service.dart | 29 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 lib/pages/analytics/services/energy_consumption_by_phases/energy_consumption_by_phases_service.dart create mode 100644 lib/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart diff --git a/lib/pages/analytics/services/energy_consumption_by_phases/energy_consumption_by_phases_service.dart b/lib/pages/analytics/services/energy_consumption_by_phases/energy_consumption_by_phases_service.dart new file mode 100644 index 00000000..21362b65 --- /dev/null +++ b/lib/pages/analytics/services/energy_consumption_by_phases/energy_consumption_by_phases_service.dart @@ -0,0 +1,8 @@ +import 'package:syncrow_web/pages/analytics/models/phases_energy_consumption.dart'; +import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_by_phases_param.dart'; + +abstract interface class EnergyConsumptionByPhasesService { + Future> load( + GetEnergyConsumptionByPhasesParam param, + ); +} diff --git a/lib/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart b/lib/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart new file mode 100644 index 00000000..81ece90b --- /dev/null +++ b/lib/pages/analytics/services/energy_consumption_by_phases/fake_energy_consumption_by_phases_service.dart @@ -0,0 +1,29 @@ +import 'package:syncrow_web/pages/analytics/models/phases_energy_consumption.dart'; +import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_by_phases_param.dart'; +import 'package:syncrow_web/pages/analytics/services/energy_consumption_by_phases/energy_consumption_by_phases_service.dart'; + +class FakeEnergyConsumptionByPhasesService + implements EnergyConsumptionByPhasesService { + @override + Future> load( + GetEnergyConsumptionByPhasesParam param, + ) { + return Future.delayed( + const Duration(milliseconds: 500), + () => const [ + PhasesEnergyConsumption(month: 1, phaseA: 200, phaseB: 300, phaseC: 400), + PhasesEnergyConsumption(month: 2, phaseA: 300, phaseB: 400, phaseC: 500), + PhasesEnergyConsumption(month: 3, phaseA: 400, phaseB: 500, phaseC: 600), + PhasesEnergyConsumption(month: 4, phaseA: 100, phaseB: 100, phaseC: 100), + PhasesEnergyConsumption(month: 5, phaseA: 300, phaseB: 400, phaseC: 500), + PhasesEnergyConsumption(month: 6, phaseA: 300, phaseB: 100, phaseC: 400), + PhasesEnergyConsumption(month: 7, phaseA: 300, phaseB: 100, phaseC: 400), + PhasesEnergyConsumption(month: 8, phaseA: 500, phaseB: 100, phaseC: 100), + PhasesEnergyConsumption(month: 9, phaseA: 500, phaseB: 100, phaseC: 200), + PhasesEnergyConsumption(month: 10, phaseA: 100, phaseB: 50, phaseC: 50), + PhasesEnergyConsumption(month: 11, phaseA: 600, phaseB: 750, phaseC: 130), + PhasesEnergyConsumption(month: 12, phaseA: 100, phaseB: 80, phaseC: 100), + ], + ); + } +}