Files
swift-manual-s/Sources/Models/ProposedKWInterpolation.swift
Michael Housh 5b2e20921c
Some checks failed
CI / Ubuntu (push) Failing after 23m10s
feat: Adds proposed kw interpolation.
2025-03-13 12:38:42 -04:00

67 lines
2.2 KiB
Swift

public enum ProposedKWInterpolation {
public struct Request: Codable, Equatable, Sendable {
public let elevation: Int?
// These are required if also doing a heat pump heating interpolation.
public let winterDesignTemperature: Int?
public let climateType: SystemType.ClimateType?
public let capacity: Capacity.HeatPumpHeating?
public let heatLoss: Int
public let proposedKW: Int
public init(
elevation: Int? = nil,
winterDesignTemperature: Int? = nil,
climateType: SystemType.ClimateType? = nil,
capacity: Capacity.HeatPumpHeating? = nil,
heatLoss: Int,
proposedKW: Int
) {
self.elevation = elevation
self.winterDesignTemperature = winterDesignTemperature
self.climateType = climateType
self.capacity = capacity
self.heatLoss = heatLoss
self.proposedKW = proposedKW
}
}
public struct Response: Codable, Equatable, Sendable {
public let failed: Bool
public let failures: [String]?
public let supplementalHeatRequired: Int
public let capacityAsPercentOfLoad: Int
public let oversizingLimit: Int
// These are if a heat pump interpolation is also done.
public let altitudeAdjustmentMultiplier: Double?
public let balancePointTemperature: Int?
public let capacityAtDesign: Int?
public let finalCapacity: Capacity.HeatPumpHeating?
public init(
failures: [String]? = nil,
supplementalHeatRequired: Int,
capacityAsPercentOfLoad: Int,
oversizingLimit: Int,
altitudeAdjustmentMultiplier: Double? = nil,
balancePointTemperature: Int? = nil,
capacityAtDesign: Int? = nil,
finalCapacity: Capacity.HeatPumpHeating? = nil
) {
self.failed = failures == nil ? false : !failures!.isEmpty
self.failures = failures
self.supplementalHeatRequired = supplementalHeatRequired
self.capacityAsPercentOfLoad = capacityAsPercentOfLoad
self.oversizingLimit = oversizingLimit
self.altitudeAdjustmentMultiplier = altitudeAdjustmentMultiplier
self.balancePointTemperature = balancePointTemperature
self.capacityAtDesign = capacityAtDesign
self.finalCapacity = finalCapacity
}
}
}