import Dependencies import DependenciesMacros import SharedModels import Vapor public extension DatabaseClient { @DependencyClient struct VendorBranches: Sendable { public var create: @Sendable (VendorBranch.Create) async throws -> VendorBranch public var delete: @Sendable (VendorBranch.ID) async throws -> Void public var fetchAll: @Sendable (FetchRequest) async throws -> [VendorBranch] public var get: @Sendable (VendorBranch.ID) async throws -> VendorBranch? public var update: @Sendable (VendorBranch.ID, VendorBranch.Update) async throws -> VendorBranch public enum FetchRequest: Equatable { case all case `for`(vendorID: Vendor.ID) case withVendor } public func fetchAll() async throws -> [VendorBranch] { try await fetchAll(.all) } } } extension VendorBranch: Content {} extension VendorBranch.Create: Content {} extension VendorBranch.Update: Content {} extension DatabaseClient.VendorBranches.FetchRequest: Content {} extension DatabaseClient.VendorBranches: TestDependencyKey { public static let testValue: DatabaseClient.VendorBranches = Self() }