CalculationResult constructor

const CalculationResult({
  1. @Default(0.0) double designCurrent,
  2. @Default(0.0) double admissibleCurrent,
  3. @Default(0.0) double activePower,
  4. @Default(0.0) double reactivePower,
  5. @Default(0.0) double apparentPower,
  6. @Default(1.0) double powerFactor,
  7. @Default(230.0) double voltageAtNode,
  8. @Default(0.0) double voltageDrop,
  9. @Default(0.0) double voltageDropVolts,
  10. @Default(0.0) double maxShortCircuitCurrent,
  11. @Default(0.0) double minShortCircuitCurrent,
  12. @Default(0.0) double loopImpedance,
  13. @Default(ValidationStatus.pending) ValidationStatus status,
  14. @Default([]) List<ValidationError> errors,
  15. @Default([]) List<ValidationWarning> warnings,
})

Implementation

const factory CalculationResult({
  // === PASADA 1: Bottom-Up (Suma de Cargas) ===

  /// Intensidad de diseño (Ib) en Amperios
  @Default(0.0) double designCurrent,

  /// Intensidad admisible (Iz) del cable en Amperios
  @Default(0.0) double admissibleCurrent,

  /// Potencia activa (P) en Watts
  @Default(0.0) double activePower,

  /// Potencia reactiva (Q) en VAR
  @Default(0.0) double reactivePower,

  /// Potencia aparente (S) en VA
  @Default(0.0) double apparentPower,

  /// Factor de potencia (cos φ)
  @Default(1.0) double powerFactor,

  // === PASADA 2: Top-Down (Caída de Tensión) ===

  /// Tensión real en este nodo (V)
  @Default(230.0) double voltageAtNode,

  /// Caída de tensión acumulada (%)
  @Default(0.0) double voltageDrop,

  /// Caída de tensión acumulada (V)
  @Default(0.0) double voltageDropVolts,

  /// Corriente de cortocircuito máxima (kA)
  @Default(0.0) double maxShortCircuitCurrent,

  /// Corriente de cortocircuito mínima (kA)
  @Default(0.0) double minShortCircuitCurrent,

  /// Impedancia del bucle (Ω)
  @Default(0.0) double loopImpedance,

  // === VALIDACIÓN ===

  /// Estado de validación del nodo
  @Default(ValidationStatus.pending) ValidationStatus status,

  /// Lista de errores críticos
  @Default([]) List<ValidationError> errors,

  /// Lista de advertencias
  @Default([]) List<ValidationWarning> warnings,
}) = _CalculationResult;