detailsToSystemData function

SystemData detailsToSystemData(
  1. GeneratorDetails details
)

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),
  );
}