Implementation
ElectricalNode toDomain() {
return map(
source: (dto) => ElectricalNode.source(
id: dto.id,
name: dto.name,
state: dto.state,
nominalVoltage: dto.nominalVoltage,
shortCircuitCapacity: dto.shortCircuitCapacity,
mainFeedCable: dto.mainFeedCable,
lastMeasurement: dto.lastMeasurement,
assetMetadata: dto.assetMetadata,
children: dto.children.map((e) => e.toDomain()).toList(),
),
panel: (dto) => ElectricalNode.panel(
id: dto.id,
name: dto.name,
state: dto.state,
nominalVoltage: dto.nominalVoltage,
inputCable: dto.inputCable,
lastMeasurement: dto.lastMeasurement,
assetMetadata: dto.assetMetadata,
children: dto.children.map((e) => e.toDomain()).toList(),
),
protection: (dto) => ElectricalNode.protection(
id: dto.id,
name: dto.name,
state: dto.state,
lastMeasurement: dto.lastMeasurement,
assetMetadata: dto.assetMetadata,
protectionType: dto.protectionType,
ratingAmps: dto.ratingAmps,
pdc: dto.pdc,
curve: dto.curve,
sensitivity: dto.sensitivity,
poles: dto.poles,
children: dto.children.map((e) => e.toDomain()).toList(),
catalogData: dto.catalogData,
cableCatalogData: dto.cableCatalogData,
),
load: (dto) => ElectricalNode.load(
id: dto.id,
name: dto.name,
state: dto.state,
inputCable: dto.inputCable,
powerWatts: dto.powerWatts,
cosPhi: dto.cosPhi,
type: dto.type,
lastMeasurement: dto.lastMeasurement,
assetMetadata: dto.assetMetadata,
isThreePhase: dto.isThreePhase,
cableCatalogData: dto.cableCatalogData,
),
);
}