feat: Initial purchase order views, login seems to be broken though.

This commit is contained in:
2025-01-17 12:58:32 -05:00
parent e1d07008a1
commit be0b5a6033
18 changed files with 534 additions and 288 deletions

View File

@@ -10,7 +10,7 @@ public struct PurchaseOrder: Codable, Equatable, Identifiable, Sendable {
public var truckStock: Bool
public var createdBy: User
public var createdFor: Employee
public var vendorBranch: VendorBranch
public var vendorBranch: VendorBranch.Detail
public var createdAt: Date?
public var updatedAt: Date?
@@ -22,7 +22,7 @@ public struct PurchaseOrder: Codable, Equatable, Identifiable, Sendable {
truckStock: Bool,
createdBy: User,
createdFor: Employee,
vendorBranch: VendorBranch,
vendorBranch: VendorBranch.Detail,
createdAt: Date?,
updatedAt: Date?
) {
@@ -41,9 +41,40 @@ public struct PurchaseOrder: Codable, Equatable, Identifiable, Sendable {
public extension PurchaseOrder {
// TODO: Add created by id.
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 createdByID: User.ID
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,
createdByID: User.ID,
createdForID: Employee.ID,
vendorBranchID: VendorBranch.ID
) {
self.id = id
self.workOrder = workOrder
self.materials = materials
self.customer = customer
self.truckStock = truckStock
self.createdByID = createdByID
self.createdForID = createdForID
self.vendorBranchID = vendorBranchID
}
}
struct CreateIntermediate: Codable, Sendable {
public let id: Int?
public let workOrder: Int?
public let materials: String
@@ -69,44 +100,26 @@ public extension PurchaseOrder {
self.createdForID = createdForID
self.vendorBranchID = vendorBranchID
}
public func toCreate(createdByID userID: User.ID) -> PurchaseOrder.Create {
.init(
id: id,
workOrder: workOrder,
materials: materials,
customer: customer,
truckStock: truckStock,
createdByID: userID,
createdForID: createdForID,
vendorBranchID: vendorBranchID
)
}
}
}
#if DEBUG
// public extension PurchaseOrder {
// static func generateMocks(
// count: Int = 50,
// employees: [Employee],
// users: [User],
// vendorBranches: [VendorBranch]
// ) -> [Self] {
// @Dependency(\.date.now) var now
// @Dependency(\.uuid) var uuid
//
// var output = [Self]()
//
// for id in 0 ... count {
// output.append(.init(
// id: id,
// workOrder: Int.random(in: 0 ... 100),
// materials: "Some thing",
// customer: "\(RandomNames.firstNames.randomElement()!) \(RandomNames.lastNames.randomElement()!)",
// truckStock: Bool.random(),
// createdBy: users.randomElement()!,
// createdFor: employees.randomElement()!,
// vendorBranch: vendorBranches.randomElement()!,
// createdAt: now,
// updatedAt: now
// ))
// }
//
// return output
// }
// }
public extension PurchaseOrder.Create {
public extension PurchaseOrder.CreateIntermediate {
static func generateMocks(
count: Int = 50,
employees: [Employee],