Files
syncrow-web/lib/pages/spaces_management/model/product_model.dart
2024-11-20 20:10:39 +04:00

71 lines
1.8 KiB
Dart

import 'package:syncrow_web/utils/constants/assets.dart';
class ProductModel {
final String uuid;
final String catName;
String? name;
final String prodId;
final String prodType;
String? icon;
ProductModel({
required this.uuid,
required this.catName,
required this.prodId,
required this.prodType,
required this.name,
this.icon,
});
// Factory method to create a Product from JSON
factory ProductModel.fromMap(Map<String, dynamic> json) {
String icon = _mapIconToProduct(json['prodType']);
return ProductModel(
uuid: json['uuid'],
catName: json['catName'],
prodId: json['prodId'],
prodType: json['prodType'],
name: json['name'] ?? '',
icon: _mapIconToProduct(json['prodType']));
}
// Method to convert a Product to JSON
Map<String, dynamic> toMap() {
return {
'uuid': uuid,
'catName': catName,
'prodId': prodId,
'prodType': prodType,
};
}
static String _mapIconToProduct(String prodType) {
const iconMapping = {
'1G': Assets.Gang1SwitchIcon,
'1GT': Assets.oneTouchSwitch,
'2G': Assets.Gang2SwitchIcon,
'2GT': Assets.twoTouchSwitch,
'3G': Assets.Gang3SwitchIcon,
'3GT': Assets.threeTouchSwitch,
'CUR': Assets.curtain,
'GD': Assets.garageDoor,
'GW': Assets.SmartGatewayIcon,
'DL': Assets.DoorLockIcon,
'WL': Assets.waterLeakSensor,
'WH': Assets.waterHeater,
'AC': Assets.ac,
'CPS': Assets.presenceSensor,
'PC': Assets.powerClamp,
'WPS': Assets.presenceSensor,
'DS': Assets.doorSensor
};
return iconMapping[prodType] ?? Assets.presenceSensor;
}
@override
String toString() {
return 'ProductModel(uuid: $uuid, catName: $catName, prodId: $prodId, prodType: $prodType, name: $name, icon: $icon)';
}
}