diff --git a/Sources/DatabaseClient/Rooms.swift b/Sources/DatabaseClient/Rooms.swift index 2d497ba..6576da7 100644 --- a/Sources/DatabaseClient/Rooms.swift +++ b/Sources/DatabaseClient/Rooms.swift @@ -10,12 +10,11 @@ extension DatabaseClient { public var create: @Sendable (Room.Create) async throws -> Room public var delete: @Sendable (Room.ID) async throws -> Void public var deleteRectangularSize: - @Sendable (Room.ID, DuctSizing.RectangularDuct.ID) async throws -> Room + @Sendable (Room.ID, Room.RectangularSize.ID) async throws -> Room public var get: @Sendable (Room.ID) async throws -> Room? public var fetch: @Sendable (Project.ID) async throws -> [Room] public var update: @Sendable (Room.ID, Room.Update) async throws -> Room - public var updateRectangularSize: - @Sendable (Room.ID, DuctSizing.RectangularDuct) async throws -> Room + public var updateRectangularSize: @Sendable (Room.ID, Room.RectangularSize) async throws -> Room } } @@ -204,7 +203,7 @@ final class RoomModel: Model, @unchecked Sendable { var registerCount: Int @Field(key: "rectangularSizes") - var rectangularSizes: [DuctSizing.RectangularDuct]? + var rectangularSizes: [Room.RectangularSize]? @Timestamp(key: "createdAt", on: .create, format: .iso8601) var createdAt: Date? @@ -224,7 +223,7 @@ final class RoomModel: Model, @unchecked Sendable { coolingTotal: Double, coolingSensible: Double? = nil, registerCount: Int, - rectangularSizes: [DuctSizing.RectangularDuct]? = nil, + rectangularSizes: [Room.RectangularSize]? = nil, createdAt: Date? = nil, updatedAt: Date? = nil, projectID: Project.ID diff --git a/Sources/ManualDCore/DuctSizing.swift b/Sources/ManualDCore/DuctSizing.swift index 198b00f..39074b6 100644 --- a/Sources/ManualDCore/DuctSizing.swift +++ b/Sources/ManualDCore/DuctSizing.swift @@ -3,27 +3,9 @@ import Foundation public enum DuctSizing { - public struct RectangularDuct: Codable, Equatable, Identifiable, Sendable { - - public let id: UUID - public let register: Int? - public let height: Int - - public init( - id: UUID = .init(), - register: Int? = nil, - height: Int, - ) { - self.id = id - self.register = register - self.height = height - } - - } - public struct SizeContainer: Codable, Equatable, Sendable { - public let rectangularID: RectangularDuct.ID? + public let rectangularID: Room.RectangularSize.ID? public let designCFM: DesignCFM public let roundSize: Double public let finalSize: Int @@ -33,7 +15,7 @@ public enum DuctSizing { public let width: Int? public init( - rectangularID: RectangularDuct.ID? = nil, + rectangularID: Room.RectangularSize.ID? = nil, designCFM: DuctSizing.DesignCFM, roundSize: Double, finalSize: Int, @@ -87,41 +69,6 @@ public enum DuctSizing { self.ductSize = ductSize } - // public init( - // roomID: Room.ID, - // roomName: String, - // roomRegister: Int, - // heatingLoad: Double, - // coolingLoad: Double, - // heatingCFM: Double, - // coolingCFM: Double, - // designCFM: DesignCFM, - // roundSize: Double, - // finalSize: Int, - // velocity: Int, - // flexSize: Int, - // rectangularSize: RectangularDuct? = nil, - // rectangularWidth: Int? = nil - // ) { - // self.roomID = roomID - // self.roomName = roomName - // self.roomRegister = roomRegister - // self.heatingLoad = heatingLoad - // self.coolingLoad = coolingLoad - // self.heatingCFM = heatingCFM - // self.coolingCFM = coolingCFM - // self.ductSize = .init( - // rectangularID: rectangularSize?.id, - // designCFM: designCFM, - // roundSize: roundSize, - // finalSize: finalSize, - // velocity: velocity, - // flexSize: flexSize, - // height: rectangularSize?.height, - // width: rectangularWidth - // ) - // } - public subscript(dynamicMember keyPath: KeyPath) -> T { ductSize[keyPath: keyPath] } diff --git a/Sources/ManualDCore/Room.swift b/Sources/ManualDCore/Room.swift index a1793eb..ad886b2 100644 --- a/Sources/ManualDCore/Room.swift +++ b/Sources/ManualDCore/Room.swift @@ -9,7 +9,7 @@ public struct Room: Codable, Equatable, Identifiable, Sendable { public let coolingTotal: Double public let coolingSensible: Double? public let registerCount: Int - public let rectangularSizes: [DuctSizing.RectangularDuct]? + public let rectangularSizes: [RectangularSize]? public let createdAt: Date public let updatedAt: Date @@ -21,7 +21,7 @@ public struct Room: Codable, Equatable, Identifiable, Sendable { coolingTotal: Double, coolingSensible: Double? = nil, registerCount: Int = 1, - rectangularSizes: [DuctSizing.RectangularDuct]? = nil, + rectangularSizes: [RectangularSize]? = nil, createdAt: Date, updatedAt: Date ) { @@ -65,13 +65,30 @@ extension Room { } } + public struct RectangularSize: Codable, Equatable, Identifiable, Sendable { + + public let id: UUID + public let register: Int? + public let height: Int + + public init( + id: UUID = .init(), + register: Int? = nil, + height: Int, + ) { + self.id = id + self.register = register + self.height = height + } + } + public struct Update: Codable, Equatable, Sendable { public let name: String? public let heatingLoad: Double? public let coolingTotal: Double? public let coolingSensible: Double? public let registerCount: Int? - public let rectangularSizes: [DuctSizing.RectangularDuct]? + public let rectangularSizes: [RectangularSize]? public init( name: String? = nil, @@ -89,7 +106,7 @@ extension Room { } public init( - rectangularSizes: [DuctSizing.RectangularDuct] + rectangularSizes: [RectangularSize] ) { self.name = nil self.heatingLoad = nil diff --git a/Sources/ManualDCore/Routes/ViewRoute.swift b/Sources/ManualDCore/Routes/ViewRoute.swift index 5470251..ebd82a3 100644 --- a/Sources/ManualDCore/Routes/ViewRoute.swift +++ b/Sources/ManualDCore/Routes/ViewRoute.swift @@ -627,7 +627,7 @@ extension SiteRoute.View.ProjectRoute { } Method.delete Query { - Field("rectangularSize") { DuctSizing.RectangularDuct.ID.parser() } + Field("rectangularSize") { Room.RectangularSize.ID.parser() } Field("register") { Int.parser() } } .map(.memberwise(DeleteRectangularDuct.init)) @@ -642,7 +642,7 @@ extension SiteRoute.View.ProjectRoute { Body { FormData { Optionally { - Field("id") { DuctSizing.RectangularDuct.ID.parser() } + Field("id") { Room.RectangularSize.ID.parser() } } Field("register") { Int.parser() } Field("height") { Int.parser() } @@ -658,10 +658,10 @@ extension SiteRoute.View.ProjectRoute { public struct DeleteRectangularDuct: Equatable, Sendable { - public let rectangularSizeID: DuctSizing.RectangularDuct.ID + public let rectangularSizeID: Room.RectangularSize.ID public let register: Int - public init(rectangularSizeID: DuctSizing.RectangularDuct.ID, register: Int) { + public init(rectangularSizeID: Room.RectangularSize.ID, register: Int) { self.rectangularSizeID = rectangularSizeID self.register = register } @@ -732,7 +732,7 @@ extension SiteRoute.View.ProjectRoute { } public struct RoomRectangularForm: Equatable, Sendable { - public let id: DuctSizing.RectangularDuct.ID? + public let id: Room.RectangularSize.ID? public let register: Int public let height: Int } diff --git a/Sources/ProjectClient/Internal/ManualDClient+calculateDuctSizes.swift b/Sources/ProjectClient/Internal/ManualDClient+calculateDuctSizes.swift index 2f8e6ff..e529e7d 100644 --- a/Sources/ProjectClient/Internal/ManualDClient+calculateDuctSizes.swift +++ b/Sources/ProjectClient/Internal/ManualDClient+calculateDuctSizes.swift @@ -161,7 +161,7 @@ extension DuctSizing.SizeContainer { init( designCFM: DuctSizing.DesignCFM, sizes: ManualDClient.DuctSizeResponse, - rectangularSize: DuctSizing.RectangularDuct?, + rectangularSize: Room.RectangularSize?, width: Int? ) { self.init(