import 'package:test_sa/models/device/supplier.dart'; import 'package:test_sa/models/device/technical_guidance_book.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/new_models/mapped_sites.dart'; import 'package:test_sa/models/new_models/room_model.dart'; import '../new_models/building.dart'; import '../new_models/department.dart'; import '../new_models/floor.dart'; import '../new_models/site.dart'; import 'model_definition.dart'; class Asset { Asset({ this.id, this.assetSerialNo, this.systemID, this.assetNumber, this.modelDefinition, this.supplier, this.ipAddress, this.macAddress, this.portNumber, this.assetReplace, this.oldAsset, this.isParent, this.parentAsset, this.assetType, this.site, this.building, this.floor, this.department, this.room, this.mappedSite, this.mappedBuilding, this.mappedDepartment, this.mappedFloor, this.testsDay, this.purchasingPrice, this.nbv, this.currency, this.poNo, this.invoiceNumber, this.invoiceDate, this.replacementDate, this.originDepartment, this.originSite, this.budgetYear, this.lastPOPrice, this.commissioningStatus, this.productionDate, this.edd, this.technicalInspectionDate, this.deliveryInspectionDate, this.endUserAcceptanceDate, this.receivingCommittee, this.siteWarrantyMonths, this.extendedWarrantyMonths, this.remainderWarrantyMonths, this.eomWarrantyMonthsNo, this.warrantyValue, this.warrantyEndDate, this.warrantyContractConditions, this.technicalGuidanceBooks, this.comment, this.tagCode, this.assetPhoto, }); Asset.fromJson(dynamic json) { id = json['id']; assetSerialNo = json['assetSerialNo']; systemID = json['systemID']; assetNumber = json['assetNumber']; modelDefinition = json['modelDefinition'] != null ? ModelDefinition.fromJson(json['modelDefinition']) : null; supplier = json['supplier'] != null ? Supplier.fromJson(json['supplier']) : null; ipAddress = json['ipAddress']; macAddress = json['macAddress']; portNumber = json['portNumber']; assetReplace = json['assetReplace'] != null ? Lookup.fromJson(json['assetReplace']) : null; oldAsset = json['oldAsset'] != null ? AssetInfo.fromJson(json['oldAsset']) : null; isParent = json['isParent'] != null ? Lookup.fromJson(json['isParent']) : null; parentAsset = json['parentAsset'] != null ? AssetInfo.fromJson(json['parentAsset']) : null; assetType = json['assetType'] != null ? Lookup.fromJson(json['assetType']) : null; site = json['site'] != null ? Site.fromJson(json['site']) : null; building = json['building'] != null ? Building.fromJson(json['building']) : null; floor = json['floor'] != null ? Floor.fromJson(json['floor']) : null; department = json['department'] != null ? Department.fromJson(json['department']) : null; room = json['room'] != null ? Rooms.fromJson(json['room']) : null; testsDay = json['testsDay']; purchasingPrice = json['purchasingPrice']; nbv = json['nbv']; currency = json['currency'] != null ? Lookup.fromJson(json['currency']) : null; poNo = json['poNo']; invoiceNumber = json['invoiceNumber']; invoiceDate = json['invoiceDate']; replacementDate = json['replacementDate']; originDepartment = json['originDepartment'] != null ? Department.fromJson(json['originDepartment']) : null; originSite = json['originSite'] != null ? Site.fromJson(json['originSite']) : null; budgetYear = json['budgetYear']; lastPOPrice = json['lastPOPrice']; commissioningStatus = json['commissioningStatus'] != null ? Lookup.fromJson(json['commissioningStatus']) : null; productionDate = json['productionDate']; edd = json['edd']; technicalInspectionDate = json['technicalInspectionDate']; deliveryInspectionDate = json['deliveryInspectionDate']; endUserAcceptanceDate = json['endUserAcceptanceDate']; receivingCommittee = json['receivingCommittee']; siteWarrantyMonths = json['siteWarrantyMonths'] != null ? Lookup.fromJson(json['siteWarrantyMonths']) : null; extendedWarrantyMonths = json['extendedWarrantyMonths'] != null ? Lookup.fromJson(json['extendedWarrantyMonths']) : null; remainderWarrantyMonths = json['remainderWarrantyMonths'] != null ? Lookup.fromJson(json['remainderWarrantyMonths']) : null; eomWarrantyMonthsNo = json['eomWarrantyMonthsNo']; warrantyValue = json['warrantyValue']; warrantyEndDate = json['warrantyEndDate']; warrantyContractConditions = json['warrantyContractConditions']; if (json['technicalGuidanceBooks'] != null) { technicalGuidanceBooks = []; json['technicalGuidanceBooks'].forEach((v) { technicalGuidanceBooks!.add(TechnicalGuidanceBook.fromJson(v)); // Use '!' since technicalGuidanceBooks is initialized here }); } comment = json['comment']; tagCode = json['tagCode']; assetPhoto = json['assetPhoto']; } num? id; // Now nullable String? assetSerialNo; // Now nullable String? systemID; // Now nullable String? assetNumber; // Now nullable ModelDefinition? modelDefinition; // Now nullable Supplier? supplier; // Now nullable String? ipAddress; // Now nullable String? macAddress; // Now nullable String? portNumber; // Now nullable Lookup? assetReplace; // Now nullable AssetInfo? oldAsset; // Now nullable Lookup? isParent; // Now nullable AssetInfo? parentAsset; // Now nullable Lookup? assetType; // Now nullable Site? site; // Now nullable Building? building; // Now nullable Floor? floor; // Now nullable Department? department; // Now nullable MappedSite? mappedSite; // Now nullable MappedBuilding? mappedBuilding; // Now nullable MappedFloor? mappedFloor; // Now nullable MappedDepartment? mappedDepartment; // No Rooms? room; // Now nullable num? testsDay; // Now nullable num? purchasingPrice; // Now nullable String? nbv; // Now nullable Lookup? currency; // Now nullable String? poNo; // Now nullable String? invoiceNumber; // Now nullable String? invoiceDate; // Now nullable String? replacementDate; // Now nullable Department? originDepartment; // Now nullable Site? originSite; // Now nullable num? budgetYear; // Now nullable num? lastPOPrice; // Now nullable Lookup? commissioningStatus; // Now nullable String? productionDate; // Now nullable String? edd; // Now nullable String? technicalInspectionDate; // Now nullable String? deliveryInspectionDate; // Now nullable String? endUserAcceptanceDate; // Now nullable String? receivingCommittee; // Now nullable Lookup? siteWarrantyMonths; // Now nullable Lookup? extendedWarrantyMonths; // Now nullable Lookup? remainderWarrantyMonths; // Now nullable num? eomWarrantyMonthsNo; // Now nullable num? warrantyValue; // Now nullable String? warrantyEndDate; // Now nullable String? warrantyContractConditions; // Now nullable List? technicalGuidanceBooks; // Now nullable String? comment; // Now nullable String? tagCode; // Now nullable String? assetPhoto; Asset copyWith({ num? id, String? assetSerialNo, String? systemID, String? assetNumber, ModelDefinition? modelDefinition, Supplier? supplier, String? ipAddress, String? macAddress, String? portNumber, Lookup? assetReplace, AssetInfo? oldAsset, Lookup? isParent, AssetInfo? parentAsset, Lookup? assetType, Site? site, Building? building, Floor? floor, Department? department, Rooms? room, MappedSite? mappedSite, MappedBuilding? mappedBuilding, MappedDepartment? mappedDepartment, MappedFloor? mappedFloor, num? testsDay, num? purchasingPrice, String? nbv, Lookup? currency, String? poNo, String? invoiceNumber, String? invoiceDate, String? replacementDate, Department? originDepartment, Site? originSite, num? budgetYear, num? lastPOPrice, Lookup? commissioningStatus, String? productionDate, String? edd, String? technicalInspectionDate, String? deliveryInspectionDate, String? endUserAcceptanceDate, String? receivingCommittee, Lookup? siteWarrantyMonths, Lookup? extendedWarrantyMonths, Lookup? remainderWarrantyMonths, num? eomWarrantyMonthsNo, num? warrantyValue, String? warrantyEndDate, String? warrantyContractConditions, List? technicalGuidanceBooks, String? comment, String? tagCode, String? assetPhoto, }) => Asset( id: id ?? this.id, assetSerialNo: assetSerialNo ?? this.assetSerialNo, systemID: systemID ?? this.systemID, assetNumber: assetNumber ?? this.assetNumber, modelDefinition: modelDefinition ?? this.modelDefinition, supplier: supplier ?? this.supplier, ipAddress: ipAddress ?? this.ipAddress, macAddress: macAddress ?? this.macAddress, portNumber: portNumber ?? this.portNumber, assetReplace: assetReplace ?? this.assetReplace, oldAsset: oldAsset ?? this.oldAsset, isParent: isParent ?? this.isParent, parentAsset: parentAsset ?? this.parentAsset, assetType: assetType ?? this.assetType, site: site ?? this.site, mappedSite: mappedSite ?? this.mappedSite, mappedDepartment: mappedDepartment ?? this.mappedDepartment, mappedFloor: mappedFloor ?? this.mappedFloor, mappedBuilding: mappedBuilding ?? this.mappedBuilding, building: building ?? this.building, floor: floor ?? this.floor, department: department ?? this.department, room: room ?? this.room, testsDay: testsDay ?? this.testsDay, purchasingPrice: purchasingPrice ?? this.purchasingPrice, nbv: nbv ?? this.nbv, currency: currency ?? this.currency, poNo: poNo ?? this.poNo, invoiceNumber: invoiceNumber ?? this.invoiceNumber, invoiceDate: invoiceDate ?? this.invoiceDate, replacementDate: replacementDate ?? this.replacementDate, originDepartment: originDepartment ?? this.originDepartment, originSite: originSite ?? this.originSite, budgetYear: budgetYear ?? this.budgetYear, lastPOPrice: lastPOPrice ?? this.lastPOPrice, commissioningStatus: commissioningStatus ?? this.commissioningStatus, productionDate: productionDate ?? this.productionDate, edd: edd ?? this.edd, technicalInspectionDate: technicalInspectionDate ?? this.technicalInspectionDate, deliveryInspectionDate: deliveryInspectionDate ?? this.deliveryInspectionDate, endUserAcceptanceDate: endUserAcceptanceDate ?? this.endUserAcceptanceDate, receivingCommittee: receivingCommittee ?? this.receivingCommittee, siteWarrantyMonths: siteWarrantyMonths ?? this.siteWarrantyMonths, extendedWarrantyMonths: extendedWarrantyMonths ?? this.extendedWarrantyMonths, remainderWarrantyMonths: remainderWarrantyMonths ?? this.remainderWarrantyMonths, eomWarrantyMonthsNo: eomWarrantyMonthsNo ?? this.eomWarrantyMonthsNo, warrantyValue: warrantyValue ?? this.warrantyValue, warrantyEndDate: warrantyEndDate ?? this.warrantyEndDate, warrantyContractConditions: warrantyContractConditions ?? this.warrantyContractConditions, technicalGuidanceBooks: technicalGuidanceBooks ?? this.technicalGuidanceBooks, comment: comment ?? this.comment, tagCode: tagCode ?? this.tagCode, assetPhoto: assetPhoto ?? this.assetPhoto, ); Map toJson() { final map = {}; map['id'] = id; map['assetSerialNo'] = assetSerialNo; map['systemID'] = systemID; map['assetNumber'] = assetNumber; if (modelDefinition != null) { map['modelDefinition'] = modelDefinition!.toJson(); } if (supplier != null) { map['supplier'] = supplier!.toJson(); } map['ipAddress'] = ipAddress; map['macAddress'] = macAddress; map['portNumber'] = portNumber; if (assetReplace != null) { map['assetReplace'] = assetReplace!.toJson(); } if (oldAsset != null) { map['oldAsset'] = oldAsset!.toJson(); } if (isParent != null) { map['isParent'] = isParent!.toJson(); } if (parentAsset != null) { map['parentAsset'] = parentAsset!.toJson(); } if (assetType != null) { map['assetType'] = assetType!.toJson(); } if (site != null) { map['site'] = site!.toJson(); } if (building != null) { map['building'] = building!.toJson(); } if (floor != null) { map['floor'] = floor!.toJson(); } if (department != null) { map['department'] = department!.toJson(); } // map['room'] = room; if (room != null) { map['room'] = room!.toJson(); } map['testsDay'] = testsDay; map['purchasingPrice'] = purchasingPrice; map['nbv'] = nbv; if (currency != null) { map['currency'] = currency!.toJson(); } map['poNo'] = poNo; map['invoiceNumber'] = invoiceNumber; map['invoiceDate'] = invoiceDate; map['replacementDate'] = replacementDate; if (originDepartment != null) { map['originDepartment'] = originDepartment!.toJson(); } if (originSite != null) { map['originSite'] = originSite!.toJson(); } map['budgetYear'] = budgetYear; map['lastPOPrice'] = lastPOPrice; if (commissioningStatus != null) { map['commissioningStatus'] = commissioningStatus!.toJson(); } map['productionDate'] = productionDate; map['edd'] = edd; map['technicalInspectionDate'] = technicalInspectionDate; map['deliveryInspectionDate'] = deliveryInspectionDate; map['endUserAcceptanceDate'] = endUserAcceptanceDate; map['receivingCommittee'] = receivingCommittee; if (siteWarrantyMonths != null) { map['siteWarrantyMonths'] = siteWarrantyMonths!.toJson(); } if (extendedWarrantyMonths != null) { map['extendedWarrantyMonths'] = extendedWarrantyMonths!.toJson(); } if (remainderWarrantyMonths != null) { map['remainderWarrantyMonths'] = remainderWarrantyMonths!.toJson(); } map['eomWarrantyMonthsNo'] = eomWarrantyMonthsNo; map['warrantyValue'] = warrantyValue; map['warrantyEndDate'] = warrantyEndDate; map['warrantyContractConditions'] = warrantyContractConditions; if (technicalGuidanceBooks != null) { map['technicalGuidanceBooks'] = technicalGuidanceBooks!.map((v) => v.toJson()).toList(); } map['comment'] = comment; map['tagCode'] = tagCode; map['assetPhoto'] = assetPhoto; return map; } } class AssetInfo { AssetInfo({ this.id, this.assetSerialNo, this.assetNumber, this.tagCode, this.systemId, this.assetName, }); AssetInfo.fromJson(dynamic json) { id = json['id']; assetSerialNo = json['assetSerialNo']; assetNumber = json['assetNumber']; tagCode = json['tagCode']; systemId = json['systemId']; assetName = json['assetName']; } num? id; // Now nullable String? assetSerialNo; // Now nullable String? assetNumber; // Now nullable String? tagCode; // Now nullable String? systemId; // Now nullable String? assetName; // Now nullable AssetInfo copyWith({ num? id, // Parameters are now nullable String? assetSerialNo, String? assetNumber, String? tagCode, String? systemId, String? assetName, }) => AssetInfo( id: id ?? this.id, assetSerialNo: assetSerialNo ?? this.assetSerialNo, assetNumber: assetNumber ?? this.assetNumber, tagCode: tagCode ?? this.tagCode, systemId: systemId ?? this.systemId, assetName: assetName ?? this.assetName, ); Map toJson() { final map = {}; map['id'] = id; map['assetSerialNo'] = assetSerialNo; map['assetNumber'] = assetNumber; map['tagCode'] = tagCode; map['systemId'] = systemId; map['assetName'] = assetName; return map; } }