feat: Initial commit
This commit is contained in:
117
Sources/SharedModels/EquipmentMeasurement.swift
Normal file
117
Sources/SharedModels/EquipmentMeasurement.swift
Normal file
@@ -0,0 +1,117 @@
|
||||
import Foundation
|
||||
|
||||
public enum EquipmentMeasurement: Equatable {
|
||||
|
||||
case airHandler(AirHandler)
|
||||
case furnaceAndCoil(FurnaceAndCoil)
|
||||
|
||||
public var equipmentType: EquipmentType {
|
||||
switch self {
|
||||
case .airHandler:
|
||||
return .airHandler
|
||||
case .furnaceAndCoil:
|
||||
return .furnaceAndCoil
|
||||
}
|
||||
}
|
||||
|
||||
public var externalStaticPressure: Double {
|
||||
switch self {
|
||||
case let .airHandler(airHandler):
|
||||
return airHandler.externalStaticPressure
|
||||
case let .furnaceAndCoil(furnaceAndCoil):
|
||||
return furnaceAndCoil.externalStaticPressure
|
||||
}
|
||||
}
|
||||
|
||||
public struct AirHandler: Equatable {
|
||||
|
||||
public var airflow: Double?
|
||||
|
||||
@Positive
|
||||
public var returnPlenumPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var postFilterPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var postCoilPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var supplyPlenumPressure: Double?
|
||||
|
||||
public init(
|
||||
airflow: Double? = nil,
|
||||
returnPlenumPressure: Double? = nil,
|
||||
postFilterPressure: Double? = nil,
|
||||
postCoilPressure: Double? = nil,
|
||||
supplyPlenumPressure: Double? = nil
|
||||
) {
|
||||
self.airflow = airflow
|
||||
self.returnPlenumPressure = returnPlenumPressure
|
||||
self.postFilterPressure = postFilterPressure
|
||||
self.postCoilPressure = postCoilPressure
|
||||
self.supplyPlenumPressure = supplyPlenumPressure
|
||||
}
|
||||
|
||||
public var externalStaticPressure: Double {
|
||||
($returnPlenumPressure.positiveValue ?? 0) + ($supplyPlenumPressure.positiveValue ?? 0)
|
||||
}
|
||||
}
|
||||
|
||||
public struct FurnaceAndCoil: Equatable {
|
||||
|
||||
public var airflow: Double?
|
||||
|
||||
@Positive
|
||||
public var returnPlenumPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var postFilterPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var preCoilPressure: Double?
|
||||
|
||||
@Positive
|
||||
public var supplyPlenumPressure: Double?
|
||||
|
||||
public init(
|
||||
airflow: Double? = nil,
|
||||
returnPlenumPressure: Double? = nil,
|
||||
postFilterPressure: Double? = nil,
|
||||
preCoilPressure: Double? = nil,
|
||||
supplyPlenumPressure: Double? = nil
|
||||
) {
|
||||
self.airflow = airflow
|
||||
self.returnPlenumPressure = returnPlenumPressure
|
||||
self.postFilterPressure = postFilterPressure
|
||||
self.preCoilPressure = preCoilPressure
|
||||
self.supplyPlenumPressure = supplyPlenumPressure
|
||||
}
|
||||
|
||||
public var externalStaticPressure: Double {
|
||||
($postFilterPressure.positiveValue ?? 0) + ($preCoilPressure.positiveValue ?? 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension EquipmentMeasurement.AirHandler {
|
||||
|
||||
public enum Key: String, Equatable, CaseIterable {
|
||||
case returnPlenumPressure
|
||||
case postFilterPressure
|
||||
case postCoilPressure
|
||||
case supplyPlenumPressure
|
||||
case airflow
|
||||
}
|
||||
}
|
||||
|
||||
extension EquipmentMeasurement.FurnaceAndCoil {
|
||||
|
||||
public enum Key: String, Equatable, CaseIterable {
|
||||
case returnPlenumPressure
|
||||
case postFilterPressure
|
||||
case preCoilPressure
|
||||
case supplyPlenumPressure
|
||||
case airflow
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user