Files
vapor-po/Sources/DatabaseClient/Interface.swift

33 lines
819 B
Swift

import Dependencies
import DependenciesMacros
import FluentKit
import SharedModels
import Vapor
public extension DependencyValues {
var database: DatabaseClient {
get { self[DatabaseClient.self] }
set { self[DatabaseClient.self] = newValue }
}
}
@DependencyClient
public struct DatabaseClient: Sendable {
public var employees: Employees
public var migrations: @Sendable () async throws -> [any AsyncMigration]
public var purchaseOrders: PurchaseOrders
public var users: Users
public var vendorBranches: VendorBranches
public var vendors: Vendors
}
extension DatabaseClient: TestDependencyKey {
public static let testValue: DatabaseClient = Self(
employees: .testValue,
purchaseOrders: .testValue,
users: .testValue,
vendorBranches: .testValue,
vendors: .testValue
)
}