// // File.swift // // // Created by Michiel Carman on 11/2/21. // import Foundation import Vapor import Fluent import FluentPostgresDriver final class mdlCPCLTemplateCommand: Model, Content{ struct Input: Content{ let id: Int? let cmd: String let sortorder: Int let isactive: Bool let createdate: Date? let createuserid: Int? let updatedate: Date? let updateuserid: Int? let cpcltemplate: mdlCPCLTemplate } struct Output: Content{ let id: Int? let cmd: String let sortorder: Int let isactive: Bool let createdate: Date? let createuserid: Int? let updatedate: Date? let updateuserid: Int? let cpcltemplate: mdlCPCLTemplate } static let schema = "CPCLTemplateCommand" @ID(custom: "id", generatedBy: .database) var id: Int? @Field(key: "cmd") var cmd: String @Field(key: "sortOrder") var sortorder: Int @Field(key: "isActive") var isactive: Bool @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: "cpclTemplateId") var cpcltemplate: mdlCPCLTemplate init(){} init(cmd: String, sortorder: Int){ self.cmd = cmd self.sortorder = sortorder self.isactive = true self.createuserid = -1 self.updateuserid = -1 self.$cpcltemplate.id = mdlCPCLTemplate(id: 1).id! } init(id: Int? = nil, cmd: String, sortorder: Int, isactive: Bool, createuserid: Int? = -1, createdate: Date? = nil, updateuserid: Int? = -1, updatedate: Date? = nil, cpcltemplate: mdlCPCLTemplate){ self.id = id self.cmd = cmd self.sortorder = sortorder self.isactive = isactive self.createuserid = createuserid self.createdate = createdate self.updateuserid = updateuserid self.updatedate = updatedate self.$cpcltemplate.id = cpcltemplate.id! } } extension mdlCPCLTemplateCommand { struct create: Migration{ func prepare(on database: Database) -> EventLoopFuture { return database.schema("CPCLTemplateCommand") .field("id", .int, .identifier(auto: true)) .field("cmd", .string) .field("sortOrder", .int) .field("isActive", .bool) .field("cpclTemplateId", .int, .required, .references("CPCLTemplate", "id")) .field("createUserId", .int) .field("createDate", .datetime) .field("updateUserId", .int) .field("updateDate", .datetime) .create() } func revert(on database: Database) -> EventLoopFuture { database.schema("CPCLTemplateCommand").delete() } } //* Uncomment if you need to seed the table. struct seed: Migration { func prepare(on database: Database) -> EventLoopFuture { // 1 let array: [mdlCPCLTemplateCommand] = [ .init(cmd: "! 0 200 200 600 1 \r\n", sortorder: 1), .init(cmd: "VB PDF-417 34 100 XD 3 YD 5 C 3 S 2 PDF Data \r\n", sortorder: 2), .init(cmd: "[Dealer Code]|[Serial Number]|[Unit]|[Make]|[Jobsite]|[Model]|[]|[Compartment]|[]|[Meter Reading]|[Hours on Oil]|[Fluid Brand]|[Fluid Viscosity]|[Fluid Changed]|[Filter Changed]|[Oil Added Unit]|[Oil Added]|[Work Order Number]|[Oil Sample Date Barcode]|[Comment]|[Compartment Code]|\r\n", sortorder: 3), .init(cmd: "ENDPDF \r\n", sortorder: 4), .init(cmd: "T 0 0 215 500 Comment\r\n", sortorder: 5), .init(cmd: "L 215 495 700 495 1 \r\n", sortorder: 6), .init(cmd: "T 5 0 215 474 [Comment]\r\n", sortorder: 7), .init(cmd: "T 0 0 215 390 Oil Brand\r\n", sortorder: 8), .init(cmd: "L 215 385 447 385 1 \r\n", sortorder: 9), .init(cmd: "T 5 0 215 364 [Fluid Brand]\r\n", sortorder: 10), .init(cmd: "T 0 0 538 390 Oil Weight\r\n", sortorder: 11), .init(cmd: "L 538 385 700 385 1 \r\n", sortorder: 12), .init(cmd: "T 5 0 538 364 [Fluid Viscosity]\r\n", sortorder: 13), .init(cmd: "T 0 0 468 335 Level\r\n", sortorder: 14), .init(cmd: "L 468 330 700 330 1 \r\n", sortorder: 15), .init(cmd: "T 5 0 468 309 [Level]\r\n", sortorder: 16), .init(cmd: "T 0 0 215 335 Oil Added\r\n", sortorder: 17), .init(cmd: "L 215 330 447 330 1 \r\n", sortorder: 18), .init(cmd: "T 5 0 215 309 [Oil Added] [Oil Added Unit]\r\n", sortorder: 19), .init(cmd: "T 0 0 215 445 Oil Chgd\r\n", sortorder: 20), .init(cmd: "L 215 440 447 440 1 \r\n", sortorder: 21), .init(cmd: "T 5 0 215 419 [Oil Changed]\r\n", sortorder: 22), .init(cmd: "T 0 0 468 445 Filter Chgd\r\n", sortorder: 23), .init(cmd: "L 468 440 700 440 1 \r\n", sortorder: 24), .init(cmd: "T 5 0 468 419 [Filter Changed]\r\n", sortorder: 25), .init(cmd: "T 0 0 215 225 Mtr Reading\r\n", sortorder: 26), .init(cmd: "L 215 220 447 220 1 \r\n", sortorder: 27), .init(cmd: "T 5 0 215 199 [Meter Reading]\r\n", sortorder: 28), .init(cmd: "T 0 0 215 280 Hrs on Oil\r\n", sortorder: 29), .init(cmd: "L 215 275 447 275 1 \r\n", sortorder: 30), .init(cmd: "T 5 0 215 254 [Hours on Oil]\r\n", sortorder: 31), .init(cmd: "T 0 0 215 170 Unit No\r\n", sortorder: 32), .init(cmd: "L 215 165 447 165 1 \r\n", sortorder: 33), .init(cmd: "T 5 0 215 144 [Unit]\r\n", sortorder: 34), .init(cmd: "T 0 0 468 170 Serial No\r\n", sortorder: 35), .init(cmd: "L 468 165 700 165 1 \r\n", sortorder: 36), .init(cmd: "T 5 0 468 144 [Serial Number]\r\n", sortorder: 37), .init(cmd: "T 0 0 468 115 Model\r\n", sortorder: 38), .init(cmd: "L 468 110 700 110 1 \r\n", sortorder: 39), .init(cmd: "T 5 0 468 89 [Model]\r\n", sortorder: 40), .init(cmd: "T 0 0 215 115 Make\r\n", sortorder: 41), .init(cmd: "L 215 110 447 110 1 \r\n", sortorder: 42), .init(cmd: "T 5 0 215 89 [Make]\r\n", sortorder: 43), .init(cmd: "T 0 0 215 60 Sample Taken From\r\n", sortorder: 44), .init(cmd: "L 215 55 700 55 1 \r\n", sortorder: 45), .init(cmd: "T 5 0 215 34 [Compartment]\r\n", sortorder: 46), .init(cmd: "T 0 0 468 225 Sample Date\r\n", sortorder: 47), .init(cmd: "L 468 220 700 220 1 \r\n", sortorder: 48), .init(cmd: "T 5 0 468 199 [Oil Sample Date Label]\r\n", sortorder: 49), .init(cmd: "T 5 0 15 5 [Customer]\r\n", sortorder: 50), .init(cmd: "T 5 0 600 5 [Work Order Number]\r\n", sortorder: 51), .init(cmd: "FORM \r\n", sortorder: 52), .init(cmd: "PRINT \r\n", sortorder: 53) ] // 2 return array.map { obj in obj.save(on: database) } .flatten(on: database.eventLoop) } func revert(on database: Database) -> EventLoopFuture { // 3 mdlCPCLTemplateCommand.query(on: database).delete() } } // }