Created EnergyConsumptionPerDeviceService and a fake implementation for it.

This commit is contained in:
Faris Armoush
2025-05-05 10:15:35 +03:00
parent a33b1e3f49
commit af877d7839
4 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,20 @@
import 'package:equatable/equatable.dart';
import 'package:flutter/widgets.dart';
import 'package:syncrow_web/pages/analytics/models/energy_data_model.dart';
class DeviceEnergyDataModel extends Equatable {
const DeviceEnergyDataModel( {
required this.energy,
required this.deviceName,
required this.deviceId,
required this.color,
});
final List<EnergyDataModel> energy;
final String deviceName;
final String deviceId;
final Color color;
@override
List<Object?> get props => [energy, deviceName, deviceId];
}

View File

@ -0,0 +1,3 @@
class GetEnergyConsumptionPerDeviceParam {
const GetEnergyConsumptionPerDeviceParam();
}

View File

@ -0,0 +1,8 @@
import 'package:syncrow_web/pages/analytics/models/device_energy_data_model.dart';
import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_per_device_param.dart';
abstract interface class EnergyConsumptionPerDeviceService {
Future<List<DeviceEnergyDataModel>> load(
GetEnergyConsumptionPerDeviceParam param,
);
}

View File

@ -0,0 +1,44 @@
import 'package:flutter/material.dart';
import 'package:syncrow_web/pages/analytics/models/device_energy_data_model.dart';
import 'package:syncrow_web/pages/analytics/models/energy_data_model.dart';
import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_per_device_param.dart';
import 'package:syncrow_web/pages/analytics/services/energy_consumption_per_device/energy_consumption_per_device_service.dart';
class FakeEnergyConsumptionPerDeviceService
implements EnergyConsumptionPerDeviceService {
@override
Future<List<DeviceEnergyDataModel>> load(
GetEnergyConsumptionPerDeviceParam param,
) {
return Future.delayed(const Duration(milliseconds: 500), () {
return [
DeviceEnergyDataModel(
color: Colors.redAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime.now().subtract(Duration(days: index)),
value: (index + 1) * 125,
),
)
.toList(),
deviceName: 'Device 1',
deviceId: 'device_!',
),
DeviceEnergyDataModel(
color: Colors.blueAccent,
energy: List.generate(12, (i) => i)
.map(
(index) => EnergyDataModel(
date: DateTime.now().subtract(Duration(days: index)),
value: (index + 1) * 125,
),
)
.toList(),
deviceName: 'Device 2',
deviceId: 'device_2',
),
];
});
}
}