dtoToHubData function

HubData? dtoToHubData(
  1. DeviceDetailsDTO details
)

Implementation

HubData? dtoToHubData(DeviceDetailsDTO details) {
  final cellStrength = details.device?.hubData?.cellularStrengthLevel;

  if (details.device?.hubData == null) return null;

  return HubData(
    serialNumber: details.device!.serialNumber!,
    dataSource: DataSource.network,
    generators: details.generators
            ?.map((g) => g.serialNumber)
            .whereType<String>()
            .where((uid) => uid.isNotEmpty)
            .toList(growable: false) ??
        const <String>[],
    ats: details.ats
            ?.map((a) => a.serialNumber)
            .whereType<String>()
            .where((uid) => uid.isNotEmpty)
            .toList(growable: false) ??
        const <String>[],
    wifiStatus: dtoToWifiStatus(details.device?.hubData?.wifiStatus),
    lastConnected: details.device?.lastConnectedTimestamp,
    cellularConnected: details.device?.hubData?.cellularConnected,
    cellularStrength: cellStrength != null
        ? switch (cellStrength) {
            >= 4 => SignalStrength.strong,
            3 => SignalStrength.moderate,
            2 => SignalStrength.weak,
            _ => SignalStrength.weak,
          }
        : null,
    cellularDataStatus: dtoCellularDataStatus(details.cellularDataStatus),
    cellularPlanExpiryDate: details.cellularExpiryDate,
  );
}