modify data to migrate to days instead of months.

This commit is contained in:
Faris Armoush
2025-05-06 15:44:33 +03:00
parent 59a59231ec
commit 682e69e65f
4 changed files with 35 additions and 76 deletions

View File

@ -1,7 +1,6 @@
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/analytics/helpers/format_number_to_kwh.dart';
import 'package:syncrow_web/pages/analytics/helpers/get_month_name_from_int.dart';
import 'package:syncrow_web/utils/color_manager.dart';
import 'package:syncrow_web/utils/extension/build_context_x.dart';
@ -25,7 +24,7 @@ abstract final class EnergyManagementChartsHelper {
getTitlesWidget: (value, meta) => Padding(
padding: const EdgeInsetsDirectional.only(top: 20.0),
child: Text(
(value + 1).getMonthName,
value.toString(),
style: context.textTheme.bodySmall?.copyWith(
color: ColorsManager.greyColor,
fontSize: 12,
@ -62,7 +61,7 @@ abstract final class EnergyManagementChartsHelper {
}
static String getToolTipLabel(num month, double value) {
final monthLabel = month.getMonthName;
final monthLabel = month.toString();
final valueLabel = value.formatNumberToKwh;
final labels = [monthLabel, valueLabel];
return labels.where((element) => element.isNotEmpty).join(', ');

View File

@ -25,7 +25,7 @@ class EnergyConsumptionPerDeviceChart extends StatelessWidget {
spots: e.energy
.map(
(energy) => FlSpot(
energy.date.month.toDouble(),
energy.date.day.toDouble(),
energy.value,
),
)

View File

@ -7,67 +7,33 @@ import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_per_de
import 'package:syncrow_web/pages/analytics/services/energy_consumption_per_device/energy_consumption_per_device_service.dart';
class FakeEnergyConsumptionPerDeviceService
implements EnergyConsumptionPerDeviceService {
implements EnergyConsumptionPerDeviceService {
@override
Future<List<DeviceEnergyDataModel>> load(
GetEnergyConsumptionPerDeviceParam param,
GetEnergyConsumptionPerDeviceParam param,
) {
return Future.delayed(const Duration(milliseconds: 500), () {
final random = math.Random();
return [
DeviceEnergyDataModel(
color: Colors.purpleAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime(DateTime.now().year, index + 1, 1),
value: random.nextInt(1450) + 50,
),
)
.toList(),
deviceName: 'Device 1',
deviceId: 'device_1',
),
DeviceEnergyDataModel(
color: Colors.amberAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime(DateTime.now().year, index + 1, 1),
value: random.nextInt(1400) + 100,
),
)
.toList(),
deviceName: 'Device 2',
deviceId: 'device_2',
),
DeviceEnergyDataModel(
color: Colors.redAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime(DateTime.now().year, index + 1, 1),
value: random.nextInt(1480) + 20,
),
)
.toList(),
deviceName: 'Device 3',
deviceId: 'device_3',
),
DeviceEnergyDataModel(
color: Colors.blueAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime(DateTime.now().year, index + 1, 1),
value: random.nextInt(1300) + 200,
),
)
.toList(),
deviceName: 'Device 4',
deviceId: 'device_4',
),
];
});
return Future.delayed(const Duration(milliseconds: 500), () {
return [
(Colors.redAccent, 1),
(Colors.lightBlueAccent, 2),
(Colors.purpleAccent, 3),
].map((e) {
final (color, index) = e;
return DeviceEnergyDataModel(
color: color,
energy: List.generate(30, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime(2025, 1, index + 1),
value: random.nextInt(100) + (index * 100),
),
)
.toList(),
deviceName: 'Device $index',
deviceId: 'device_$index',
);
}).toList();
});
}
}

View File

@ -7,19 +7,13 @@ class FakeTotalEnergyConsumptionService implements TotalEnergyConsumptionService
Future<List<EnergyDataModel>> load(
GetTotalEnergyConsumptionParam param,
) {
return Future.value([
EnergyDataModel(date: DateTime(2025, 1), value: 0),
EnergyDataModel(date: DateTime(2025, 2), value: 2500),
EnergyDataModel(date: DateTime(2025, 3), value: 22000),
EnergyDataModel(date: DateTime(2025, 4), value: 21000),
EnergyDataModel(date: DateTime(2025, 5), value: 30000),
EnergyDataModel(date: DateTime(2025, 6), value: 23000),
EnergyDataModel(date: DateTime(2025, 7), value: 21000),
EnergyDataModel(date: DateTime(2025, 8), value: 25000),
EnergyDataModel(date: DateTime(2025, 9), value: 21100),
EnergyDataModel(date: DateTime(2025, 10), value: 22000),
EnergyDataModel(date: DateTime(2025, 11), value: 21000),
EnergyDataModel(date: DateTime(2025, 12), value: 30000),
]);
return Future.value(
List.generate(30, (index) {
return EnergyDataModel(
date: DateTime(2025, 1, index + 1),
value: 20000 + (index * 1000) % 5000,
);
}),
);
}
}