feat: Initial purchase order views, login seems to be broken though.
This commit is contained in:
@@ -6,8 +6,8 @@ import SharedModels
|
||||
public extension DatabaseClient.PurchaseOrders {
|
||||
|
||||
static func live(database: any Database) -> Self {
|
||||
.init { create, createdById in
|
||||
let model = try create.toModel(createdByID: createdById)
|
||||
.init { create in
|
||||
let model = try create.toModel()
|
||||
try await model.save(on: database)
|
||||
let fetched = try await PurchaseOrderModel.allQuery(on: database).filter(\.$id == model.id!).first()!
|
||||
return try fetched.toDTO()
|
||||
@@ -62,7 +62,7 @@ extension PurchaseOrder {
|
||||
|
||||
extension PurchaseOrder.Create {
|
||||
|
||||
func toModel(createdByID: User.ID) throws -> PurchaseOrderModel {
|
||||
func toModel() throws -> PurchaseOrderModel {
|
||||
try validate()
|
||||
return .init(
|
||||
materials: materials,
|
||||
@@ -157,7 +157,7 @@ final class PurchaseOrderModel: Model, Codable, @unchecked Sendable {
|
||||
truckStock: truckStock,
|
||||
createdBy: createdBy.toDTO(),
|
||||
createdFor: createdFor.toDTO(),
|
||||
vendorBranch: vendorBranch.toDTO(),
|
||||
vendorBranch: vendorBranch.toDetail(),
|
||||
createdAt: createdAt,
|
||||
updatedAt: updatedAt
|
||||
)
|
||||
|
||||
@@ -34,6 +34,11 @@ public extension DatabaseClient.VendorBranches {
|
||||
}
|
||||
|
||||
return try await query.all().map { try $0.toDTO() }
|
||||
} fetchAllWithDetail: {
|
||||
try await VendorBranchModel.query(on: db)
|
||||
.with(\.$vendor)
|
||||
.all()
|
||||
.map { try $0.toDetail() }
|
||||
} get: { id in
|
||||
try await VendorBranchModel.find(id, on: db).map { try $0.toDTO() }
|
||||
} update: { id, updates in
|
||||
@@ -147,6 +152,16 @@ final class VendorBranchModel: Model, @unchecked Sendable {
|
||||
)
|
||||
}
|
||||
|
||||
func toDetail() throws -> VendorBranch.Detail {
|
||||
try .init(
|
||||
id: requireID(),
|
||||
name: name,
|
||||
vendor: vendor.toDTO(),
|
||||
createdAt: createdAt,
|
||||
updatedAt: updatedAt
|
||||
)
|
||||
}
|
||||
|
||||
func applyUpdates(_ updates: VendorBranch.Update) throws {
|
||||
try updates.validate()
|
||||
if let name = updates.name {
|
||||
|
||||
Reference in New Issue
Block a user