Files
vapor-po/Sources/SharedModels/Employee.swift

72 lines
1.5 KiB
Swift

import Dependencies
import Foundation
public struct Employee: Codable, Equatable, Identifiable, Sendable {
public var id: UUID
public var active: Bool
public var createdAt: Date
public var firstName: String
public var lastName: String
public var updatedAt: Date
public init(
id: UUID,
active: Bool = true,
createdAt: Date,
firstName: String,
lastName: String,
updatedAt: Date
) {
self.id = id
self.active = active
self.createdAt = createdAt
self.firstName = firstName
self.lastName = lastName
self.updatedAt = updatedAt
}
}
public extension Employee {
struct Create: Codable, Sendable {
public let firstName: String
public let lastName: String
public let active: Bool?
public init(
firstName: String,
lastName: String,
active: Bool? = nil
) {
self.firstName = firstName
self.lastName = lastName
self.active = active
}
}
struct Update: Codable, Sendable {
public let firstName: String?
public let lastName: String?
public let active: Bool?
public init(
firstName: String? = nil,
lastName: String? = nil,
active: Bool? = nil
) {
self.firstName = firstName
self.lastName = lastName
self.active = active
}
}
}
// public extension Employee {
// static var mocks: [Self] {
// [
// .init(firstName: "Michael", lastName: "Housh"),
// .init(firstName: "Blob", lastName: "Esquire"),
// .init(firstName: "Testy", lastName: "McTestface")
// ]
// }
// }