detailsToSystemData function
Implementation
SystemData detailsToSystemData(GeneratorDetails details) {
final installationChecklistType = InstallationChecklistType.values.firstWhere(
(e) => e.name == details.installationChecklistType,
orElse: () => InstallationChecklistType.defaultSystem,
);
return SystemData(
deviceId: details.device.id,
locationName: details.device.displayName,
address: details.device.address,
installationChecklistType: installationChecklistType,
currentInstallationChecklistStep:
InstallationChecklistStep.values.firstWhere(
(e) => e.name == details.currentInstallationChecklistStep,
orElse: () => installationChecklistType.steps.first,
),
generator: SystemGeneratorData(
serialNumber: details.generators.firstOrNull?.serialNumber ??
details.device.serialNumber,
dataSource: DataSource.network,
displayName: null,
modelNumber: details.modelNumber,
status: details.device.status,
mode: details.switchState,
powerSource: details.powerSource,
fuelType: details.fuelType,
alertCount: details.device.alertCount,
totalRuntime: details.totalRuntime,
hasServiceAgreement: details.hasServiceAgreement ?? false,
serviceAgreementStatus: details.device.serviceAgreementStatus,
serviceAgreementExpiryDate: details.serviceAgreementExpiry,
),
quietModeEnabled: false,
exercise: SystemExerciseData(
mode: details.exerciseMode,
nextExerciseDate: details.nextExerciseDate,
frequency: details.exerciseFrequency,
duration: details.exerciseDuration,
),
atsTiles: [
for (final ats in details.ats)
SystemAtsData(
serialNumber: ats.serialNumber,
dataSource: DataSource.network,
displayName: null,
modelNumber: ats.modelNo,
connectionType: ats.connectionType,
powerSource: ats.powerSource,
ismSignalStrength: ats.ismSignalStrength,
),
],
hubData: details.hubData,
firmware: const SystemFirmwareData(updatesAvailable: 0),
);
}