Add EnergyDataModel and update TotalEnergyConsumptionChart to use it

This commit is contained in:
Faris Armoush
2025-04-30 15:15:05 +03:00
parent 3873deca90
commit bb3c3906d1
2 changed files with 18 additions and 23 deletions

View File

@ -1,7 +1,7 @@
import 'package:equatable/equatable.dart';
class EnergyData extends Equatable {
const EnergyData({
class EnergyDataModel extends Equatable {
const EnergyDataModel({
required this.date,
required this.value,
});

View File

@ -2,30 +2,25 @@ 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/pages/analytics/models/energy_data_model.dart';
import 'package:syncrow_web/utils/color_manager.dart';
import 'package:syncrow_web/utils/extension/build_context_x.dart';
const _chartData = [
EnergyData('JAN', 18000),
EnergyData('FEB', 25000),
EnergyData('MAR', 22000),
EnergyData('APR', 21000),
EnergyData('MAY', 30000),
EnergyData('JUN', 23000),
EnergyData('JUL', 21000),
EnergyData('AUG', 25000),
EnergyData('SEP', 21100),
EnergyData('OCT', 22000),
EnergyData('NOV', 21000),
EnergyData('DEC', 27500),
final _chartData = [
EnergyDataModel(date: DateTime(2025, 1), value: 18000),
EnergyDataModel(date: DateTime(2025, 2), value: 25000),
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: 27500),
];
class EnergyData {
const EnergyData(this.time, this.consumption);
final String time;
final double consumption;
}
// energy_consumption_chart will return id, name and consumption
const phasesJson = {
"1": {
@ -84,7 +79,7 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
.map(
(entry) => FlSpot(
entry.key.toDouble(),
entry.value.consumption,
entry.value.value,
),
)
.toList(),
@ -127,7 +122,7 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
child: FittedBox(
fit: BoxFit.scaleDown,
child: Text(
_chartData[value.toInt()].time,
_chartData[value.toInt()].date.month.getMonthName,
style: context.textTheme.bodySmall?.copyWith(
fontSize: 12,
color: ColorsManager.greyColor,