|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- //
- // WorkOrder.swift
- //
- //
- // Created by Michiel Carman on 10/27/21.
- //
-
- import Foundation
- import Vapor
- import Fluent
- import FluentPostgresDriver
-
- final class mdlWorkOrder: Model, Content{
-
- static let schema = "WorkOrder"
-
- @ID(custom: "id", generatedBy: .database) var id: Int?
- @Field(key: "number") var number: String
- @Field(key: "specialInstruction") var specialinstruction: String
- @Field(key: "scheduledStartDate") var scheduledstartdate: Date
- @Field(key: "scheduledEndDate") var scheduledenddate: Date
- @Field(key: "createUserId" ) var createuserid: Int?
- @Timestamp(key: "createDate", on: .create) var createdate: Date?
- @Field(key: "updateUserId") var updateuserid: Int?
- @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
- @Parent(key: "customerId") var customer: mdlCustomer
- @Parent(key: "machineId") var machine: mdlMachine
- @Parent(key: "priorityId") var priority: mdlPriority
- @Parent(key: "reasonId") var reason: mdlReason
- @Parent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason
- //@Children(for: \.$workorder) var users: [mdlWorkOrderUser]
- @Children(for: \.$workorder) var workorderstatuses: [mdlWorkOrderStatus]
- @Children(for: \.$workorder) var inspections: [mdlInspection]
- @Children(for: \.$workorder) var consumptions: [mdlConsumption]
- @Children(for: \.$workorder) var notes: [mdlNote]
- @Children(for: \.$workorder) var files: [mdlFile]
- @Children(for: \.$workorder) var signatures: [mdlSignature]
- @Children(for: \.$workorder) var parts: [mdlWorkOrderPart]
-
- @Siblings(through: mdlWorkOrderUser.self, from: \.$workorder, to: \.$user) public var userss: [mdlUser]
-
-
- @Siblings(through: mdlWorkOrderStatus.self, from: \.$workorder, to: \.$status) public var statuses: [mdlStatus]
-
-
-
- init(){}
-
- init(id: Int? = nil, number: String, specialinstruction: String, scheduledstartdate: Date, scheduledenddate: Date, createuserid: Int? = -1, createdate: Date? = nil, updateuserid: Int? = -1, updatedate: Date? = nil, customer: mdlCustomer, machine: mdlMachine, priority: mdlPriority, reason: mdlReason, incompletereason: mdlIncompleteReason, users: [mdlUser]?, workorderstatuses: [mdlWorkOrderStatus]?, inspections: [mdlInspection]?, consumptions: [mdlConsumption]?, notes: [mdlNote]?, files: [mdlFile]?, signatures: [mdlSignature]?, parts: [mdlWorkOrderPart]?, statuses: [mdlStatus]?){
- self.id = id
- self.number = number
- self.specialinstruction = specialinstruction
- self.scheduledstartdate = scheduledstartdate
- self.scheduledenddate = scheduledenddate
- self.createuserid = createuserid
- self.createdate = createdate
- self.updateuserid = updateuserid
- self.updatedate = updatedate
- self.$customer.id = customer.id!
- self.$machine.id = machine.id!
- self.$priority.id = priority.id!
- self.$reason.id = reason.id!
- self.$incompletereason.id = incompletereason.id!
- self.$userss.value = users
- self.$workorderstatuses.value = workorderstatuses
- self.$inspections.value = inspections
- self.$consumptions.value = consumptions
- self.$notes.value = notes
- self.$files.value = files
- self.$signatures.value = signatures
- self.$parts.value = parts
- self.$statuses.value = statuses
- }
- }
- extension mdlWorkOrder {
- struct Input: Content{
- let id: Int?
- let number: String
- let specialinstruction: String
- let scheduledstartdate: Date
- let scheduledenddate: Date
- let createdate: Date?
- let createuserid: Int?
- let updatedate: Date?
- let updateuserid: Int?
- let customer: mdlCustomer
- let machine: mdlMachine
- let priority: mdlPriority
- let reason: mdlReason
- let incompletereason: mdlIncompleteReason
- let workorderstatuses: [mdlWorkOrderStatus]?
- let users: [mdlUser]?
- let inspections: [mdlInspection]?
- let consumptions: [mdlConsumption]?
- let notes: [mdlNote]?
- let files: [mdlFile]?
- let signatures: [mdlSignature]?
- let parts: [mdlWorkOrderPart]?
- let statuses: [mdlStatus]?
- }
-
- struct Output: Content{
- let id: Int?
- let number: String
- let specialinstruction: String
- let scheduledstartdate: Date
- let scheduledenddate: Date
- let createdate: Date?
- let createuserid: Int?
- let updatedate: Date?
- let updateuserid: Int?
- let customer: mdlCustomer
- let machine: mdlMachine
- let priority: mdlPriority
- let reason: mdlReason
- let incompletereason: mdlIncompleteReason
- let workorderstatuses: [mdlWorkOrderStatus]?
- let users: [mdlUser]?
- let inspections: [mdlInspection]?
- let consumptions: [mdlConsumption]?
- let notes: [mdlNote]?
- let files: [mdlFile]?
- let signatures: [mdlSignature]?
- let parts: [mdlWorkOrderPart]?
- let statuses: [mdlStatus]?
- }
- struct create: Migration{
- func prepare(on database: Database) -> EventLoopFuture<Void> {
- return database.schema("WorkOrder")
- .field("id", .int, .identifier(auto: true))
- .field("number", .string)
- .field("specialInstruction", .string)
- .field("scheduledStartDate", .datetime)
- .field("scheduledEndDate", .datetime)
- .field("customerId", .int, .required, .references("Customer", "id"))
- .field("machineId", .int, .required, .references("Machine", "id"))
- .field("priorityId", .int, .references("Priority", "id"))
- .field("reasonId", .int, .references("Reason", "id"))
- .field("incompleteReasonId", .int, .references("IncompleteReason", "id"))
-
- .field("createUserId", .int)
- .field("createDate", .datetime)
- .field("updateUserId", .int)
- .field("updateDate", .datetime)
- .create()
- }
- func revert(on database: Database) -> EventLoopFuture<Void> {
- database.schema("WorkOrder").delete()
- }
- }
- /* Uncomment if you need to seed the table.
- struct seed: Migration {
- func prepare(on database: Database) -> EventLoopFuture<Void> {
- // 1
- let array: [<#Model#>] = [
- <#init#>
- ]
- // 2
- return array.map { obj in
- obj.save(on: database)
- }
- .flatten(on: database.eventLoop)
- }
-
- func revert(on database: Database) -> EventLoopFuture<Void> {
- // 3
- <#Model#>.query(on: database).delete()
- }
- }
- */
- }
|