SP-1723-FE-Integrate-Charts-with-API-s-for-AQI-sensor.

This commit is contained in:
Faris Armoush
2025-06-16 10:59:51 +03:00
parent 5f20d52e57
commit 6ff9c602f1
12 changed files with 57 additions and 178 deletions

View File

@ -15,7 +15,9 @@ class AirQualityDataModel extends Equatable {
return AirQualityDataModel(
date: DateTime.parse(json['date'] as String),
data: (json['data'] as List<dynamic>)
.map((e) => AirQualityPercentageData.fromJson(e as Map<String, dynamic>))
.map(
(e) => AirQualityPercentageData.fromJson(e as Map<String, dynamic>),
)
.toList(),
);
}
@ -23,9 +25,9 @@ class AirQualityDataModel extends Equatable {
static final Map<String, Color> metricColors = {
'good': ColorsManager.goodGreen.withValues(alpha: 0.7),
'moderate': ColorsManager.moderateYellow.withValues(alpha: 0.7),
'poor': ColorsManager.poorOrange.withValues(alpha: 0.7),
'unhealthy_sensitive': ColorsManager.poorOrange.withValues(alpha: 0.7),
'unhealthy': ColorsManager.unhealthyRed.withValues(alpha: 0.7),
'severe': ColorsManager.severePink.withValues(alpha: 0.7),
'very_unhealthy': ColorsManager.severePink.withValues(alpha: 0.7),
'hazardous': ColorsManager.hazardousPurple.withValues(alpha: 0.7),
};
@ -36,22 +38,19 @@ class AirQualityDataModel extends Equatable {
class AirQualityPercentageData extends Equatable {
const AirQualityPercentageData({
required this.type,
required this.name,
required this.percentage,
});
final String type;
final String name;
final double percentage;
factory AirQualityPercentageData.fromJson(Map<String, dynamic> json) {
return AirQualityPercentageData(
type: json['type'] as String? ?? '',
name: json['name'] as String? ?? '',
type: json['type'] as String? ?? '',
percentage: (json['percentage'] as num?)?.toDouble() ?? 0,
);
}
@override
List<Object?> get props => [type, name, percentage];
List<Object?> get props => [type, percentage];
}