// A container / namespace for different capacity containers. public enum Capacity { public struct Cooling: Codable, Equatable, Sendable { public let total: Int public let sensible: Int public var latent: Int public init( total: Int, sensible: Int, latent: Int? = nil ) { self.total = total self.sensible = sensible self.latent = latent ?? total - sensible } } public struct Heating: Codable, Equatable, Sendable { public let total: Int public init(total: Int) { self.total = total } } public struct HeatPumpHeating: Codable, Equatable, Sendable { public let at47: Int public let at17: Int public init(at47: Int, at17: Int) { self.at47 = at47 self.at17 = at17 } } // TODO: Remove. public struct ManufacturersCooling: Codable, Equatable, Sendable { public let airflow: Int public let capacity: Container public let otherCapacity: Container? public init( airflow: Int, capacity: Capacity.ManufacturersCooling.Container, otherCapacity: Capacity.ManufacturersCooling.Container? = nil ) { self.airflow = airflow self.capacity = capacity self.otherCapacity = otherCapacity } public struct Container: Codable, Equatable, Sendable { public let dryBulbTemperature: Int public let wetBulbTemperature: Int public let outdoorTemperature: Int public let totalCapacity: Int public let sensibleCapacity: Int public let adjustmentMultipliers: AdjustmentMultiplier? public var latentCapacity: Int { totalCapacity - sensibleCapacity } public init( dryBulbTemperature: Int, wetBulbTemperature: Int, outdoorTemperature: Int, totalCapacity: Int, sensibleCapacity: Int, adjustmentMultipliers: AdjustmentMultiplier? = nil ) { self.dryBulbTemperature = dryBulbTemperature self.wetBulbTemperature = wetBulbTemperature self.outdoorTemperature = outdoorTemperature self.totalCapacity = totalCapacity self.sensibleCapacity = sensibleCapacity self.adjustmentMultipliers = adjustmentMultipliers } } } public struct ManufacturersContainer: Codable, Equatable, Sendable { public let wetBulb: Int public let totalCapacity: Int public let sensibleCapacity: Int public init( wetBulb: Int, totalCapacity: Int, sensibleCapacity: Int ) { self.wetBulb = wetBulb self.totalCapacity = totalCapacity self.sensibleCapacity = sensibleCapacity } } }