import Dependencies import DependenciesMacros import Fluent import SharedModels public extension DatabaseClient { @DependencyClient struct PurchaseOrders: Sendable { public var create: @Sendable (PurchaseOrder.Create, User.ID) async throws -> PurchaseOrder public var fetchAll: @Sendable () async throws -> [PurchaseOrder] public var fetchPage: @Sendable (PageRequest) async throws -> Page public var get: @Sendable (PurchaseOrder.ID) async throws -> PurchaseOrder? // var update: @Sendable (PurchaseOrder.ID, PurchaseOrder.Update) async throws -> PurchaseOrder public var delete: @Sendable (PurchaseOrder.ID) async throws -> Void } } extension DatabaseClient.PurchaseOrders: TestDependencyKey { public static let testValue: DatabaseClient.PurchaseOrders = Self() } public extension PurchaseOrder { struct Create: Codable, Sendable { public let id: Int? public let workOrder: Int? public let materials: String public let customer: String public let truckStock: Bool? public let createdForID: Employee.ID public let vendorBranchID: VendorBranch.ID public init( id: Int? = nil, workOrder: Int? = nil, materials: String, customer: String, truckStock: Bool? = nil, createdForID: Employee.ID, vendorBranchID: VendorBranch.ID ) { self.id = id self.workOrder = workOrder self.materials = materials self.customer = customer self.truckStock = truckStock self.createdForID = createdForID self.vendorBranchID = vendorBranchID } } }