dtoToResetFaultsValidation function
Implementation
ResetFaultsValidation dtoToResetFaultsValidation(
DeviceDetailsDTO details,
List<TimelineItem> activeAlerts,
) {
final fault = activeAlerts
.firstWhereOrNull((alert) => alert.type == TimelineItemType.shutdown);
final hasMatchingProduct = details.device?.product == ProductDTO.rdc2v4 ||
details.device?.product == ProductDTO.dc2v4;
final firmware = details.device?.firmwareVersion;
final hasUpdatedVersion =
firmware != null && Version.parse(firmware) >= Version(3, 3, 2);
return ResetFaultsValidation(
isCriticalFault: activeAlerts
.where((alert) => alert.type == TimelineItemType.shutdown)
.any((alert) => alert.isCriticalFault),
isSupportedFaultType: fault?.canRemoteResetFault != false,
isAuto: details.switchState == SwitchStateDTO.auto,
isConnected: details.device?.isConnected ?? false,
isFirmwareUpdated: hasMatchingProduct && hasUpdatedVersion,
);
}