You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/models/device/model_definition.dart

111 lines
3.5 KiB
Dart

import 'package:test_sa/models/device/supplier.dart';
class ModelDefinition {
ModelDefinition({
this.id,
this.assetName,
this.assetDescription,
this.modelDefCode,
this.modelName,
this.manufacturerId,
this.manufacturerName,
this.supplierName,
this.replacementDate,
this.essentialEquipement,
this.businessCritical,
this.lifeSpan,
this.modelDefRelatedDefects,
this.suppliers,
});
ModelDefinition.fromJson(dynamic json) {
id = json['id'];
assetName = json['assetName'];
assetDescription = json['assetDescription'];
modelDefCode = json['modelDefCode'];
modelName = json['modelName'];
manufacturerId = json['manufacturerId'];
manufacturerName = json['manufacturerName'];
supplierName = json['supplierName'];
replacementDate = json['replacementDate'];
essentialEquipement = json['essentialEquipement'];
businessCritical = json['businessCritical'];
lifeSpan = json['lifeSpan'];
if (json['modelDefRelatedDefects'] != null) {
modelDefRelatedDefects = [];
json['modelDefRelatedDefects'].forEach((v) {
modelDefRelatedDefects!.add(ModelDefRelatedDefects.fromJson(v)); // Use '!' since modelDefRelatedDefects is initialized here
});
}
if (json['suppliers'] != null) {
suppliers = [];
json['suppliers'].forEach((v) {
suppliers!.add(Supplier.fromJson(v)); // Use '!' since suppliers is initialized here
});
}
}
num? id; // Now nullable
String? assetName; // Now nullable
String? assetDescription; // Now nullable
String? modelDefCode; // Now nullable
String? modelName; // Now nullable
num? manufacturerId; // Now nullable
String? manufacturerName; // Now nullable
String? supplierName; // Remains dynamic asit can hold various types
String? replacementDate; // Now nullable
String? essentialEquipement; // Now nullable
String? businessCritical; // Now nullable
num? lifeSpan; // Now nullable
List<ModelDefRelatedDefects>? modelDefRelatedDefects; // Now nullable
List<Supplier>? suppliers; // Now nullable
// ... (copyWith method remains the same, just with nullable parameters)
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = id;
map['assetName'] = assetName;
// ... (rest of the toJson method remains the same, no need for null-aware operator here as properties are already checked for null in the if conditions)
if (modelDefRelatedDefects != null) {
map['modelDefRelatedDefects'] = modelDefRelatedDefects!.map((v) => v.toJson()).toList(); // Use '!' since modelDefRelatedDefects could be null
}
if (suppliers != null) {
map['suppliers'] = suppliers!.map((v) => v.toJson()).toList(); // Use '!' since suppliers could be null
}
return map;
}
}
class ModelDefRelatedDefects {
ModelDefRelatedDefects({
this.id,
this.defectName,
this.workPerformed,
this.estimatedTime,
});
ModelDefRelatedDefects.fromJson(dynamic json) {
id = json['id'];
defectName = json['defectName'];
workPerformed = json['workPerformed'];
estimatedTime = json['estimatedTime'];
}
num? id; // Now nullable
String? defectName; // Now nullable
String? workPerformed; // Now nullable
String? estimatedTime; // Now nullable
// ... (copyWith method remains the same, just with nullable parameters)
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = id;
map['defectName'] = defectName;
map['workPerformed'] = workPerformed;
map['estimatedTime'] = estimatedTime;
return map;
}
}