Feat: Adds flagged equipment measurement view and style

This commit is contained in:
2024-06-05 11:00:23 -04:00
parent c13b3740f2
commit ae7b413409
6 changed files with 240 additions and 71 deletions

View File

@@ -97,24 +97,50 @@ public enum EquipmentMeasurement: Equatable {
}
}
extension EquipmentMeasurement.AirHandler {
public enum Key: String, Equatable, CaseIterable {
case returnPlenumPressure
case postFilterPressure
case postCoilPressure
case supplyPlenumPressure
case airflow
}
}
//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
// }
//}
extension EquipmentMeasurement.FurnaceAndCoil {
public enum Key: String, Equatable, CaseIterable {
case returnPlenumPressure
case postFilterPressure
case preCoilPressure
case supplyPlenumPressure
case airflow
#if DEBUG
extension EquipmentMeasurement {
public static func mock(type equipmentType: EquipmentType) -> Self {
switch equipmentType {
case .airHandler:
return .airHandler(.init(
airflow: 1200,
returnPlenumPressure: 0.3,
postFilterPressure: 0.6,
postCoilPressure: 0.9,
supplyPlenumPressure: 0.2
))
case .furnaceAndCoil:
return .furnaceAndCoil(.init(
airflow: 1200,
returnPlenumPressure: 0.3,
postFilterPressure: 0.6,
preCoilPressure: 0.4,
supplyPlenumPressure: 0.1
))
}
}
}
#endif

View File

@@ -120,54 +120,19 @@ public struct FlaggedEquipmentMeasurement: Equatable {
}
}
// MARK: - Key
// MARK: - Helpers
#if DEBUG
extension FlaggedEquipmentMeasurement {
// NOTE: These need to be kept in display order.
public enum Key: Equatable, CaseIterable {
case returnPlenum
case filterDrop
case coilDrop
case supplyPlenum
case staticPressure
case airflow
public var title: String {
switch self {
case .returnPlenum:
return "Return Plenum"
case .filterDrop:
return "Filter Pressure Drop"
case .coilDrop:
return "Coil Pressure Drop"
case .supplyPlenum:
return "Supply Plenum"
case .staticPressure:
return "External Static Pressure"
case .airflow:
return "System Airflow"
}
}
public var flaggedKeyPath: KeyPath<FlaggedEquipmentMeasurement, Flagged> {
switch self {
case .returnPlenum:
return \.returnPlenumPressure
case .filterDrop:
return \.filterPressureDrop
case .coilDrop:
return \.coilPressureDrop
case .supplyPlenum:
return \.supplyPlenumPressure
case .staticPressure:
return \.externalStaticPressure
case .airflow:
return \.airflow
}
}
public static func mock(type equipmentType: EquipmentType) -> Self {
.init(
budgets: .init(equipmentType: equipmentType, fanType: .variableSpeed),
measurement: .mock(type: equipmentType),
ratedPressures: .init(),
tons: .default
)
}
}
// MARK: - Helpers
#endif
fileprivate extension Flagged {
init(