| @@ -72,6 +72,9 @@ struct cntrlUser: RouteCollection { | |||
| func create(req: Request) async throws -> mdlUser { | |||
| let obj = try req.content.decode(mdlUser.self) | |||
| if(obj.id != nil){ | |||
| obj._$idExists = true | |||
| } | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlTemplate.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlTemplate: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("templates") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlTemplate] { | |||
| try await mdlTemplate.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlTemplate { | |||
| let obj = try req.content.decode(mdlTemplate.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlTemplate{ | |||
| let obj = try req.content.decode(mdlTemplate.self) | |||
| let dbobj = try await mdlTemplate.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlTemplate.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlTemplateCategory.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlTemplateCategory: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("templatecategories") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlTemplateCategory] { | |||
| try await mdlTemplateCategory.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlTemplateCategory { | |||
| let obj = try req.content.decode(mdlTemplateCategory.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlTemplateCategory{ | |||
| let obj = try req.content.decode(mdlTemplateCategory.self) | |||
| let dbobj = try await mdlTemplateCategory.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlTemplateCategory.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlTemplateItemSpec.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlTemplateItemSpec: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("templateitemspecs") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlTemplateItemSpec] { | |||
| try await mdlTemplateItemSpec.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlTemplateItemSpec { | |||
| let obj = try req.content.decode(mdlTemplateItemSpec.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlTemplateItemSpec{ | |||
| let obj = try req.content.decode(mdlTemplateItemSpec.self) | |||
| let dbobj = try await mdlTemplateItemSpec.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlTemplateItemSpec.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlConsumption.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlConsumption: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("consumptions") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlConsumption] { | |||
| try await mdlConsumption.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlConsumption { | |||
| let obj = try req.content.decode(mdlConsumption.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlConsumption{ | |||
| let obj = try req.content.decode(mdlConsumption.self) | |||
| let dbobj = try await mdlConsumption.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlConsumption.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspection.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspection: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspections") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspection] { | |||
| try await mdlInspection.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspection { | |||
| let obj = try req.content.decode(mdlInspection.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspection{ | |||
| let obj = try req.content.decode(mdlInspection.self) | |||
| let dbobj = try await mdlInspection.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspection.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionCategory.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionCategory: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectioncategories") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionCategory] { | |||
| try await mdlInspectionCategory.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionCategory { | |||
| let obj = try req.content.decode(mdlInspectionCategory.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionCategory{ | |||
| let obj = try req.content.decode(mdlInspectionCategory.self) | |||
| let dbobj = try await mdlInspectionCategory.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionCategory.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File 2.swift | |||
| // | |||
| // cntrlInspectionItem.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItem: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitems") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItem] { | |||
| try await mdlInspectionItem.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItem { | |||
| let obj = try req.content.decode(mdlInspectionItem.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItem{ | |||
| let obj = try req.content.decode(mdlInspectionItem.self) | |||
| let dbobj = try await mdlInspectionItem.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItem.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemResponse.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItemResponse: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitemresponses") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItemResponse] { | |||
| try await mdlInspectionItemResponse.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItemResponse { | |||
| let obj = try req.content.decode(mdlInspectionItemResponse.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItemResponse{ | |||
| let obj = try req.content.decode(mdlInspectionItemResponse.self) | |||
| let dbobj = try await mdlInspectionItemResponse.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItemResponse.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemSpec.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItemSpec: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitemspecs") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItemSpec] { | |||
| try await mdlInspectionItemSpec.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItemSpec { | |||
| let obj = try req.content.decode(mdlInspectionItemSpec.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItemSpec{ | |||
| let obj = try req.content.decode(mdlInspectionItemSpec.self) | |||
| let dbobj = try await mdlInspectionItemSpec.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItemSpec.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemSpecItem.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItemSpecItem: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitemspecitems") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItemSpecItem] { | |||
| try await mdlInspectionItemSpecItem.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItemSpecItem { | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItem.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItemSpecItem{ | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItem.self) | |||
| let dbobj = try await mdlInspectionItemSpecItem.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItemSpecItem.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemSpecItemTest.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItemSpecItemTest: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitemspecitemtests") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItemSpecItemTest] { | |||
| try await mdlInspectionItemSpecItemTest.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItemSpecItemTest { | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItemTest.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItemSpecItemTest{ | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItemTest.self) | |||
| let dbobj = try await mdlInspectionItemSpecItemTest.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItemSpecItemTest.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemSpecItemValue.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionItemSpecItemValue: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionitemspecitemvalues") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionItemSpecItemValue] { | |||
| try await mdlInspectionItemSpecItemValue.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionItemSpecItemValue { | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItemValue.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionItemSpecItemValue{ | |||
| let obj = try req.content.decode(mdlInspectionItemSpecItemValue.self) | |||
| let dbobj = try await mdlInspectionItemSpecItemValue.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionItemSpecItemValue.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionLevel.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionLevel: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectionlevels") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionLevel] { | |||
| try await mdlInspectionLevel.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionLevel { | |||
| let obj = try req.content.decode(mdlInspectionLevel.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionLevel{ | |||
| let obj = try req.content.decode(mdlInspectionLevel.self) | |||
| let dbobj = try await mdlInspectionLevel.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionLevel.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionType.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlInspectionType: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("inspectiontypes") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlInspectionType] { | |||
| try await mdlInspectionType.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlInspectionType { | |||
| let obj = try req.content.decode(mdlInspectionType.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlInspectionType{ | |||
| let obj = try req.content.decode(mdlInspectionType.self) | |||
| let dbobj = try await mdlInspectionType.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlInspectionType.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlNote.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlNote: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("notes") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlNote] { | |||
| try await mdlNote.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlNote { | |||
| let obj = try req.content.decode(mdlNote.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlNote{ | |||
| let obj = try req.content.decode(mdlNote.self) | |||
| let dbobj = try await mdlNote.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlNote.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlWorkOrderPart.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlWorkOrderPart: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("workorderparts") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlWorkOrderPart] { | |||
| try await mdlWorkOrderPart.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlWorkOrderPart { | |||
| let obj = try req.content.decode(mdlWorkOrderPart.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlWorkOrderPart{ | |||
| let obj = try req.content.decode(mdlWorkOrderPart.self) | |||
| let dbobj = try await mdlWorkOrderPart.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlWorkOrderPart.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlSignature.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlSignature: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("signatures") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlSignature] { | |||
| try await mdlSignature.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlSignature { | |||
| let obj = try req.content.decode(mdlSignature.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlSignature{ | |||
| let obj = try req.content.decode(mdlSignature.self) | |||
| let dbobj = try await mdlSignature.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlSignature.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlWorkOrderFlow.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlWorkorderFlow: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("workorderflows") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlWorkOrderFlow] { | |||
| try await mdlWorkOrderFlow.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlWorkOrderFlow { | |||
| let obj = try req.content.decode(mdlWorkOrderFlow.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlWorkOrderFlow{ | |||
| let obj = try req.content.decode(mdlWorkOrderFlow.self) | |||
| let dbobj = try await mdlWorkOrderFlow.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlWorkOrderFlow.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -1,8 +1,49 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlWorkOrderSegment.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 4/1/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| struct cntrlWorkOrderSegment: RouteCollection { | |||
| func boot(routes: RoutesBuilder) throws { | |||
| let rts = routes.grouped("workordersegments") | |||
| rts.get(use: index) | |||
| rts.post(use: create) | |||
| rts.put(use: update) | |||
| rts.group(":id") { rt in | |||
| rts.delete(use: delete) | |||
| } | |||
| } | |||
| func index(req: Request) async throws -> [mdlWorkOrderSegment] { | |||
| try await mdlWorkOrderSegment.query(on: req.db).all() | |||
| } | |||
| func create(req: Request) async throws -> mdlWorkOrderSegment { | |||
| let obj = try req.content.decode(mdlWorkOrderSegment.self) | |||
| try await obj.save(on: req.db) | |||
| return obj | |||
| } | |||
| func update(req: Request) async throws -> mdlWorkOrderSegment{ | |||
| let obj = try req.content.decode(mdlWorkOrderSegment.self) | |||
| let dbobj = try await mdlWorkOrderSegment.query(on: req.db).filter(\.$id == obj.id!).first()! | |||
| dbobj.updatedate = Date() | |||
| dbobj.updateuserid = -1 | |||
| try await dbobj.update(on: req.db) | |||
| return dbobj | |||
| } | |||
| func delete(req: Request) async throws -> HTTPStatus { | |||
| guard let obj = try await mdlWorkOrderSegment.find(req.parameters.get("id"), on: req.db) else { | |||
| throw Abort(.notFound) | |||
| } | |||
| try await obj.delete(on: req.db) | |||
| return .noContent | |||
| } | |||
| } | |||
| @@ -20,8 +20,6 @@ final class mdlSegment: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Siblings(through: mdlXWorkOrderSegment.self, from: \.$segment, to: \.$workorder) var workorders: [mdlWorkOrder] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -20,6 +20,7 @@ final class mdlResponseType: Model, Content { | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Parent(key: "repairTypeId") var repairtype: mdlRepairType | |||
| @Children(for: \.$responsetype) var responses: [mdlInspectionItemResponse] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -19,6 +19,9 @@ final class mdlCategory: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$category) var categories: [mdlInspectionCategory] | |||
| @Children(for: \.$category) var templatecategories: [mdlTemplateCategory] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -18,6 +18,8 @@ final class mdlInputType: Model, Content { | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Children(for: \.$inputtype) var inspectionitems: [mdlInspectionItem] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -26,9 +26,10 @@ final class mdlLocation: Model, Content { | |||
| @Parent(key: "stateId") var state: mdlState | |||
| @OptionalParent(key: "unitId") var unit: mdlUnit? | |||
| @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? | |||
| // @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? | |||
| @Children(for: \.$location) var users: [mdlUser] | |||
| @OptionalChild(for: \.$location) var labsetting: mdlLabSetting? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @@ -50,8 +51,7 @@ final class mdlLocation: Model, Content { | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil, | |||
| stateid: Int? = nil, | |||
| unitid: Int? = nil, | |||
| labsettingid: Int? = nil | |||
| unitid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| @@ -69,7 +69,6 @@ final class mdlLocation: Model, Content { | |||
| self.$state.$id.value = stateid! | |||
| self.$unit.$id.value = unitid! | |||
| self.$labsetting.$id.value = labsettingid! | |||
| } | |||
| } | |||
| @@ -100,6 +99,19 @@ extension mdlLocation{ | |||
| try await database.schema("location").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("location") | |||
| .deleteField("labSettingId") | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("location") | |||
| .field("labSettingId", .int) | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -19,6 +19,8 @@ final class mdlNoteType: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$type) var notes: [mdlNote] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -18,6 +18,7 @@ final class mdlSignatureType: Model, Content { | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Field(key: "isRequired") var isrequired: Bool? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -26,12 +27,13 @@ final class mdlSignatureType: Model, Content { | |||
| init() { } | |||
| init(id: Int? = nil, name: String? = nil, description: String? = nil, isactive: Bool? = true, createuserid: Int? = nil, updateuserid: Int? = nil) { | |||
| init(id: Int? = nil, name: String? = nil, description: String? = nil, isactive: Bool? = true, isrequired: Bool? = false, createuserid: Int? = nil, updateuserid: Int? = nil) { | |||
| self.id = id | |||
| self.name = name | |||
| self.description = description | |||
| self.isactive = isactive | |||
| self.isrequired = isrequired | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| @@ -57,6 +59,19 @@ extension mdlSignatureType{ | |||
| try await database.schema("signatureType").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("signatureType") | |||
| .field("isRequired", .bool) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("signatureType") | |||
| .deleteField("isRequired") | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -21,6 +21,7 @@ final class mdlCustomer: Model, Content { | |||
| @Children(for: \.$customer) var contacts: [mdlContact] | |||
| @Children(for: \.$customer) var workorders: [mdlWorkOrder] | |||
| @Children(for: \.$customer) var templates: [mdlTemplate] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -24,6 +24,8 @@ final class mdlEquipment: Model, Content { | |||
| @OptionalParent(key: "parentId") var parent: mdlEquipment? | |||
| @Children(for: \.$equipment) var properties: [mdlObjProperty] | |||
| @Children(for: \.$equipment) var templates: [mdlTemplate] | |||
| @Siblings(through: mdlWorkOrderAttachment.self, from: \.$equipment, to: \.$workorder) var workorders: [mdlWorkOrder] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -19,6 +19,7 @@ final class mdlMake: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$make) var templates: [mdlTemplate] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -22,6 +22,8 @@ final class mdlModel: Model, Content { | |||
| @Parent(key: "productId") var product: mdlProduct | |||
| @Parent(key: "makeId") var make: mdlMake | |||
| @Children(for: \.$model) var templates: [mdlTemplate] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -19,6 +19,7 @@ final class mdlProduct: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$product) var templates: [mdlTemplate] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -19,6 +19,8 @@ final class mdlItem: Model, Content { | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$item) var templateitems: [mdlTemplateItemSpec] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -21,6 +21,9 @@ final class mdlLabSetting: Model, Content { | |||
| @Field(key: "barcodeActive") var barcodeactive: Bool? | |||
| @Field(key: "textActive") var textactive: Bool? | |||
| @Field(key: "logoActive") var logoactive: Bool? | |||
| @Field(key: "cpcl") var cpcl: String? | |||
| @Parent(key: "locationId") var location: mdlLocation | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @@ -30,7 +33,7 @@ final class mdlLabSetting: Model, Content { | |||
| init() { } | |||
| init(id: Int? = nil, name: String? = nil, description: String? = nil, barcodedelimeter: String? = nil, barcodeactive: Bool? = nil, textactive: Bool? = nil, logoactive: Bool? = nil, createuserid: Int? = nil, updateuserid: Int? = nil) { | |||
| init(id: Int? = nil, name: String? = nil, description: String? = nil, barcodedelimeter: String? = nil, barcodeactive: Bool? = nil, textactive: Bool? = nil, logoactive: Bool? = nil, createuserid: Int? = nil, updateuserid: Int? = nil, cpc: String? = nil) { | |||
| self.id = id | |||
| self.name = name | |||
| @@ -42,6 +45,7 @@ final class mdlLabSetting: Model, Content { | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| self.cpcl = cpcl | |||
| } | |||
| } | |||
| @@ -67,6 +71,32 @@ extension mdlLabSetting{ | |||
| try await database.schema("labSetting").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration{ | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("labSetting") | |||
| .field("cpcl", .string) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("labSetting") | |||
| .deleteField("cpcl") | |||
| .update() | |||
| } | |||
| } | |||
| struct Mod2: AsyncMigration{ | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("labSetting") | |||
| .field("locationId", .int, .references("location", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("labSetting") | |||
| .deleteField("locationId") | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -17,6 +17,7 @@ final class mdlXWorkOrderSegment: Model, Content { | |||
| @Parent(key: "workOrderId") var workorder: mdlWorkOrder | |||
| @Parent(key: "segmentId") var segment: mdlSegment | |||
| //@Children(for: \.$segment) var parts: [mdlWorkOrderPart] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @@ -55,6 +56,23 @@ extension mdlXWorkOrderSegment{ | |||
| try await database.schema("user").delete() | |||
| } | |||
| } | |||
| struct Delete: AsyncMigration { | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("xWorkOrderSegment") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("workOrderId", .int, .references("workOrder", "id")) | |||
| .field("segmentId", .int, .references("segment", "id")) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("xWorkOrderSegment").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -21,6 +21,7 @@ final class mdlSpec: Model, Content { | |||
| @Parent(key: "itemId") var item: mdlItem | |||
| @Children(for: \.$spec) var specitems: [mdlSpecItem] | |||
| @Children(for: \.$spec) var templatespecs: [mdlTemplateItemSpec] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -1,8 +1,107 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlTemplate.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlTemplate: Model, Content { | |||
| static let schema = "template" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @OptionalParent(key: "inspectionLevelId") var level: mdlInspectionLevel? | |||
| @OptionalParent(key: "productId") var product: mdlProduct? | |||
| @OptionalParent(key: "makeId") var make: mdlMake? | |||
| @OptionalParent(key: "modelId") var model: mdlModel? | |||
| @OptionalParent(key: "customerId") var customer: mdlCustomer? | |||
| @OptionalParent(key: "equipmentId") var equipment: mdlEquipment? | |||
| @Children(for: \.$template) var categories: [mdlTemplateCategory] | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| levelid: Int? = nil, | |||
| productid: Int? = nil, | |||
| makeid: Int? = nil, | |||
| modelid: Int? = nil, | |||
| customerid: Int? = nil, | |||
| equipmentid: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| isactive: Bool? = true, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$level.$id.value = levelid! | |||
| self.$product.$id.value = productid! | |||
| self.$make.$id.value = makeid! | |||
| self.$model.$id.value = modelid! | |||
| self.$customer.$id.value = customerid! | |||
| self.$equipment.$id.value = equipmentid! | |||
| self.name = name | |||
| self.description = description | |||
| self.isactive = isactive | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlTemplate{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("template") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionLevelId", .int, .references("inspectionLevel", "id")) | |||
| .field("productId", .int, .references("product", "id")) | |||
| .field("makeId", .int, .references("make", "id")) | |||
| .field("modelId", .int, .references("model", "id")) | |||
| .field("customerId", .int, .references("customer", "id")) | |||
| .field("equipment", .int, .references("equipment", "id")) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("isActive", .bool) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("template").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("template") | |||
| .deleteField("equipment") | |||
| .field("equipmentId", .int, .references("equipment", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("template") | |||
| .deleteField("equipmentId") | |||
| .field("equipment", .int, .references("equipment", "id")) | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,68 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlTemplateCategory.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlTemplateCategory: Model, Content { | |||
| static let schema = "templateCategory" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "templateId") var template: mdlTemplate | |||
| @Parent(key: "categoryId") var category: mdlCategory | |||
| @Children(for: \.$templatecategory) var items: [mdlTemplateItemSpec] | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| templateid: Int, | |||
| categoryid: Int, | |||
| sortorder: Int? = 0, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$template.$id.value = templateid | |||
| self.$category.$id.value = categoryid | |||
| self.sortorder = sortorder | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlTemplateCategory{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("templateCategory") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("templateId", .int, .references("template", "id")) | |||
| .field("categoryId", .int, .references("category", "id")) | |||
| .field("sortOrder", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("templateCategory").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,70 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlTemplateItemSpec.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlTemplateItemSpec: Model, Content { | |||
| static let schema = "templateItemSpec" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "templateCategoryId") var templatecategory: mdlTemplateCategory | |||
| @OptionalParent(key: "itemId") var item: mdlItem? | |||
| @OptionalParent(key: "specId") var spec: mdlSpec? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| categoryid: Int, | |||
| itemid: Int? = nil, | |||
| specid: Int? = nil, | |||
| sortorder: Int? = 0, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$templatecategory.$id.value = categoryid | |||
| self.$item.$id.value = itemid | |||
| self.$spec.$id.value = specid | |||
| self.sortorder = sortorder | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlTemplateItemSpec{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("templateItemSpec") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("templateCategoryId", .int, .references("templateCategory", "id")) | |||
| .field("itemId", .int, .references("item", "id")) | |||
| .field("specId", .int, .references("spec", "id")) | |||
| .field("sortOrder", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("templateItemSpec").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,93 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlConsumption.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlConsumption: Model, Content { | |||
| static let schema = "consumption" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "workOrderSegmentId") var segmaent: mdlWorkOrderSegment | |||
| @Parent(key: "fluidId") var fluid: mdlFluid | |||
| @Parent(key: "viscosityId") var viscosity: mdlViscosity | |||
| @Field(key: "quantity") var quantity: Float? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| segmentid: Int, | |||
| fluidid: Int, | |||
| viscosityid: Int, | |||
| quantity: Float? = nil, | |||
| sortorder: Int? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$segmaent.$id.value = segmentid | |||
| self.$fluid.$id.value = fluidid | |||
| self.$viscosity.$id.value = viscosityid | |||
| self.quantity = quantity | |||
| self.sortorder = sortorder | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlConsumption{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("consumption") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) | |||
| .field("fluid", .int, .references("fluid", "id")) | |||
| .field("viscosity", .int, .references("viscosity", "id")) | |||
| .field("quantity", .float) | |||
| .field("sortOrder", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("consumption").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("consumption") | |||
| .deleteField("fluid") | |||
| .deleteField("viscosity") | |||
| .field("fluidId", .int, .references("fluid", "id")) | |||
| .field("viscosityId", .int, .references("viscosity", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("consumption") | |||
| .deleteField("fluidId") | |||
| .deleteField("viscosityId") | |||
| .field("fluid", .int, .references("fluid", "id")) | |||
| .field("viscosity", .int, .references("viscosity", "id")) | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,73 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspection.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspection: Model, Content { | |||
| static let schema = "inspection" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "workOrderSegmentId") var segment: mdlWorkOrderSegment | |||
| @Parent(key: "inspectionLevelId") var level: mdlInspectionLevel | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "interval") var interval: String? | |||
| @Children(for: \.$inspection) var categories: [mdlInspectionCategory] | |||
| @Children(for: \.$inspection) var notes: [mdlNote] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| segmentid: Int, | |||
| levelid: Int, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.description = description | |||
| self.$segment.$id.value = segmentid | |||
| self.$level.$id.value = levelid | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspection{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspection") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) | |||
| .field("inspectionLevelId", .int, .references("inspectionLevel", "id")) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspection").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -20,6 +20,8 @@ final class mdlInspectionCategory: Model, Content { | |||
| @Parent(key: "categoryId") var category: mdlCategory | |||
| @Field(key: "summary") var summary: String? | |||
| @Children(for: \.$category) var inspectionitems: [mdlInspectionItem] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @@ -1,8 +1,114 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionItem.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItem: Model, Content { | |||
| static let schema = "inspectionItem" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionCategoryId") var category: mdlInspectionCategory | |||
| @Parent(key: "inputTypeId") var inputtype: mdlInputType | |||
| @OptionalParent(key: "smscCodeId") var smsccode: mdlSMSCCode? | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @OptionalParent(key: "previousInspectionItemId") var previousinspectionitem: mdlInspectionItem? | |||
| @OptionalParent(key: "previousInspectionItemResponseId") var previousinspectionitemresponse: mdlInspectionItemResponse? | |||
| @Children(for: \.$inspectionitem) var responses: [mdlInspectionItemResponse] | |||
| @Children(for: \.$inspectionitem) var specs: [mdlInspectionItemSpec] | |||
| @Children(for: \.$item) var notes: [mdlNote] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| inspectioncategoryid: Int, | |||
| inputtypeid: Int, | |||
| smsccodeid: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| sortorder: Int? = 0, | |||
| previousinspectionitemid: Int? = nil, | |||
| previousinspectionitemresponseid: Int? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$category.$id.value = inspectioncategoryid | |||
| self.$inputtype.$id.value = inputtypeid | |||
| self.name = name | |||
| self.description = description | |||
| self.sortorder = sortorder | |||
| self.$previousinspectionitem.$id.value = previousinspectionitemid | |||
| self.$previousinspectionitemresponse.$id.value = previousinspectionitemresponseid | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItem{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItem") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionCategoryId", .int, .references("inspectionCategory", "id")) | |||
| .field("inputTypeId", .int, .references("inputType", "id")) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("sortOrder", .int) | |||
| .field("previousInspectionItemId", .int, .references("inspectionItem", "id")) | |||
| //.field("previousInspectionItemResponsId", .int, .references("inspectionItemResponse", "id")) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItem").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItem") | |||
| .field("previousInspectionItemResponseId", .int, .references("inspectionItemResponse", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItem") | |||
| .deleteField("previousInspectionItemResponsId") | |||
| .update() | |||
| } | |||
| } | |||
| struct Mod2: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItem") | |||
| .field("smscCodeId", .int, .references("smscCode", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItem") | |||
| .deleteField("previousInspectionItemResponsId") | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,74 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionItemResposne.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItemResponse: Model, Content { | |||
| static let schema = "inspectionItemResponse" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionItemId") var inspectionitem: mdlInspectionItem | |||
| @Parent(key: "responseTypeId") var responsetype: mdlResponseType | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Field(key: "isSelected") var isselected: Bool? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| inspectionitemid: Int, | |||
| responsetypeid: Int, | |||
| name: String? = nil, | |||
| sortorder: Int? = 0, | |||
| isselected: Bool? = false, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$inspectionitem.$id.value = inspectionitemid | |||
| self.$responsetype.$id.value = responsetypeid | |||
| self.name = name | |||
| self.sortorder = sortorder | |||
| self.isselected = isselected | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItemResponse{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItemResponse") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionItemId", .int, .references("inspectionItem", "id")) | |||
| .field("responseTypeId", .int, .references("responseType", "id")) | |||
| .field("name", .string) | |||
| .field("sortOrder", .int) | |||
| .field("isSelected", .bool) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItemResponse").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,66 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionItemSpec.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItemSpec: Model, Content { | |||
| static let schema = "inspectionItemSpec" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionItemId") var inspectionitem: mdlInspectionItem | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "numberOfTests") var numberoftests: Int? | |||
| @Children(for: \.$inspectionitemspec) var items: [mdlInspectionItemSpecItem] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String? = nil, | |||
| numberoftests: Int? = 1, | |||
| inspectionitemid: Int, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.numberoftests = numberoftests | |||
| self.$inspectionitem.$id.value = inspectionitemid | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItemSpec{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpec") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("numberOfTests", .int) | |||
| .field("inspectionItemId", .int, .references("inspectionItem", "id")) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpec").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,87 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionItemSpecItem.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItemSpecItem: Model, Content { | |||
| static let schema = "inspectionItemSpecItem" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionItemSpecId") var inspectionitemspec: mdlInspectionItemSpec | |||
| @Parent(key: "comparisonTypeId") var comparisontype: mdlComparisonType | |||
| @Parent(key: "unitId") var unit: mdlUnit | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "average") var average: Float? | |||
| @Field(key: "qualifier") var qualifier: String? | |||
| @Field(key: "result") var result: String? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Children(for: \.$specitem) var tests: [mdlInspectionItemSpecItemTest] | |||
| @Children(for: \.$specitem) var values: [mdlInspectionItemSpecItemValue] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| inspectionitemspecid: Int, | |||
| comparisontypeid: Int, | |||
| unitid: Int, | |||
| name: String? = nil, | |||
| average: Float? = nil, | |||
| qualifier: String? = nil, | |||
| result: String? = nil, | |||
| sortorder: Int? = 0, | |||
| createuserid: Int? = -1, | |||
| updateuserid: Int? = -1 | |||
| ) { | |||
| self.id = id | |||
| self.$inspectionitemspec.$id.value = inspectionitemspecid | |||
| self.$comparisontype.$id.value = comparisontypeid | |||
| self.$unit.$id.value = unitid | |||
| self.name = name | |||
| self.average = average | |||
| self.qualifier = qualifier | |||
| self.result = result | |||
| self.sortorder = sortorder | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItemSpecItem{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItem") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionItemSpecId", .int, .references("inspectionItemSpec", "id")) | |||
| .field("comparisonTypeId", .int, .references("comparisonType", "id")) | |||
| .field("unitId", .int, .references("unit", "id")) | |||
| .field("name", .string) | |||
| .field("average", .float) | |||
| .field("qualifier", .string) | |||
| .field("result", .string) | |||
| .field("sortOrder", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItem").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,64 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // cntrlInspectionItemSpecItemTest.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItemSpecItemTest: Model, Content { | |||
| static let schema = "inspectionItemSpecItemTest" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionItemSpecItemId") var specitem: mdlInspectionItemSpecItem | |||
| @Field(key: "number") var number: Int? | |||
| @Field(key: "value") var value: String? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| specitemid: Int, | |||
| number: Int? = nil, | |||
| value: String? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$specitem.$id.value = specitemid | |||
| self.number = number | |||
| self.value = value | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItemSpecItemTest{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItemTest") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionItemSpecItemId", .int, .references("inspectionItemSpecItem", "id")) | |||
| .field("number", .int) | |||
| .field("value", .string) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItemTest").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,64 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionItemSpecItemValue.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionItemSpecItemValue: Model, Content { | |||
| static let schema = "inspectionItemSpecItemValue" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "inspectionItemSpecItemId") var specitem: mdlInspectionItemSpecItem | |||
| @Parent(key: "valueTypeId") var valuetype: mdlValueType | |||
| @Field(key: "value") var value: String? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| specitemid: Int, | |||
| valuetypeid: Int, | |||
| value: String? = nil, | |||
| createuserid: Int? = -1, | |||
| updateuserid: Int? = -1 | |||
| ) { | |||
| self.id = id | |||
| self.$specitem.$id.value = specitemid | |||
| self.$valuetype.$id.value = valuetypeid | |||
| self.value = value | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionItemSpecItemValue{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItemValue") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("inspectionItemSpecItemId", .int, .references("inspectionItemSpecItem", "id")) | |||
| .field("valueTypeId", .int, .references("valueType", "id")) | |||
| .field("value", .string) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionItemSpecItemValue").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,71 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionLevel.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionLevel: Model, Content { | |||
| static let schema = "inspectionLevel" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Parent(key: "inspectionTypeId") var inspectiontype: mdlInspectionType | |||
| @Children(for: \.$level) var inspections: [mdlInspection] | |||
| @Children(for: \.$level) var templates: [mdlTemplate] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| isactive: Bool? = true, | |||
| inspectiontypeid: Int, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.description = description | |||
| self.isactive = isactive | |||
| self.$inspectiontype.$id.value = inspectiontypeid | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionLevel{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionLevel") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("isactive", .bool) | |||
| .field("inspectionTypeId", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionLevel").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,69 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlInspectionType.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlInspectionType: Model, Content { | |||
| static let schema = "inspectionType" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Children(for: \.$inspectiontype) var inspectionlevels: [mdlInspectionLevel] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| isactive: Bool? = true, | |||
| ending: Int? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.description = description | |||
| self.isactive = isactive | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlInspectionType{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("inspectionType") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("isActive", .bool) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("inspectionType").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,93 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlNote.swift | |||
| // | |||
| // Created by Michiel Carman on 4/4/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlNote: Model, Content { | |||
| static let schema = "note" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "noteTypeId") var type: mdlNoteType | |||
| @Field(key: "text") var text: String? | |||
| @Field(key: "filePath") var filepath: String? | |||
| @OptionalParent(key: "workOrderId") var workorder: mdlWorkOrder? | |||
| @OptionalParent(key: "inspectionId") var inspection: mdlInspection? | |||
| @OptionalParent(key: "inspectionItemId") var item: mdlInspectionItem? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| typeid: Int, | |||
| text: String? = nil, | |||
| filepath: String? = nil, | |||
| workorderid: Int? = nil, | |||
| inspectionid: Int? = nil, | |||
| inspectionitemid: Int? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$type.$id.value = typeid | |||
| self.text = text | |||
| self.filepath = filepath | |||
| self.$workorder.$id.value = workorderid! | |||
| self.$inspection.$id.value = inspectionid! | |||
| self.$item.$id.value = inspectionitemid! | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlNote{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("note") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("noteTypeId", .int, .references("noteType", "id")) | |||
| .field("workOrderId", .int, .references("workOrder", "id")) | |||
| .field("inspectionId", .int, .references("inspection", "id")) | |||
| .field("inspectionItemId", .int, .references("inspectionItem", "id")) | |||
| .field("text", .string) | |||
| .field("filepath", .string) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("note").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("note") | |||
| .deleteField("filepath") | |||
| .field("filePath", .string) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("note") | |||
| .deleteField("filePath") | |||
| .field("filepath", .string) | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,104 @@ | |||
| // | |||
| // File 4.swift | |||
| // | |||
| // mdlWorkOrderPart.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlWorkOrderPart: Model, Content { | |||
| static let schema = "workOrderPart" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Parent(key: "partId") var part: mdlPart | |||
| @Parent(key: "workOrderSegmentId") var segment: mdlWorkOrderSegment | |||
| @Field(key: "refDocNumber") var refdocnumber: String? | |||
| @Field(key: "qtyIssued") var qtyissued: Decimal? | |||
| @Field(key: "qtyReturned") var qtyreturned: Decimal? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| partid: Int, | |||
| segment: Int, | |||
| refdocnumber: String? = nil, | |||
| qtyissued: Decimal? = nil, | |||
| qtyreturned: Decimal? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.$part.$id.value = partid | |||
| self.$segment.$id.value = segment | |||
| self.refdocnumber = refdocnumber | |||
| self.qtyissued = qtyissued | |||
| self.qtyreturned = qtyreturned | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlWorkOrderPart{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("workOrderParts") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("partId", .int, .references("part", "id")) | |||
| .field("segmentId", .int, .references("xWorkOrderSegment", "id")) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("workOrderParts").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("workOrderParts") | |||
| .field("refDocNumber", .string) | |||
| .field("qtyIssued", .double) | |||
| .field("qtyReturned", .double) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("workOrderParts") | |||
| .deleteField("refDocNumber") | |||
| .deleteField("qtyIssued") | |||
| .deleteField("qtyReturned") | |||
| .update() | |||
| } | |||
| } | |||
| struct Mod2: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("workOrderParts") | |||
| .deleteField("segmentId") | |||
| .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("workOrderParts") | |||
| .deleteField("workOrderSegmentId") | |||
| .field("segmentId", .int, .references("xWorkOrderSegment", "id")) | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -120,7 +120,7 @@ extension mdlOilSample{ | |||
| .update() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration{ | |||
| struct Mod2: AsyncMigration{ | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("oilSample") | |||
| .deleteField("segmentId") | |||
| @@ -1,8 +1,69 @@ | |||
| // | |||
| // File.swift | |||
| // | |||
| // mdlSignature.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlSignature: Model, Content { | |||
| static let schema = "signature" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Field(key: "name") var name: String | |||
| @Field(key: "type") var type: String | |||
| @Field(key: "data") var data: Data | |||
| @Parent(key: "workOrderId") var workorder: mdlWorkOrder | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String, | |||
| type: String, | |||
| data: Data, | |||
| workorderid: Int, | |||
| createuserid: Int? = -1, | |||
| updateuserid: Int? = -1 | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.type = type | |||
| self.data = data | |||
| self.$workorder.$id.value = workorderid | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlSignature{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("signature") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("type", .string) | |||
| .field("data", .data) | |||
| .field("workOrderId", .int) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("signature").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -32,8 +32,12 @@ final class mdlWorkOrder: Model, Content { | |||
| @OptionalParent(key: "reasonId") var reason: mdlReason? | |||
| @OptionalParent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason? | |||
| @OptionalParent(key: "fuelId") var fuel: mdlFuel? | |||
| @OptionalParent(key: "workOrderFlowId") var workorderflow: mdlWorkOrderFlow? | |||
| @Siblings(through: mdlXWorkOrderSegment.self, from: \.$workorder, to: \.$segment) var segments: [mdlSegment] | |||
| @Siblings(through: mdlWorkOrderAttachment.self, from: \.$workorder, to: \.$equipment) var equipments: [mdlEquipment] | |||
| @Children(for: \.$workorder) var signatures: [mdlSignature] | |||
| @Children(for: \.$workorder) var notes: [mdlNote] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -59,6 +63,7 @@ final class mdlWorkOrder: Model, Content { | |||
| , reasonid: Int? = nil | |||
| , incompletereasonid: Int? = nil | |||
| , fuelid: Int? = nil | |||
| , workorderflowid: Int? = nil | |||
| , createuserid: Int? = nil | |||
| , updateuserid: Int? = nil | |||
| ) { | |||
| @@ -79,6 +84,7 @@ final class mdlWorkOrder: Model, Content { | |||
| self.$reason.$id.value = reasonid! | |||
| self.$incompletereason.$id.value = incompletereasonid! | |||
| self.$fuel.$id.value = fuelid! | |||
| self.$workorderflow.$id.value = workorderflowid! | |||
| self.createuserid = createuserid ?? -1 | |||
| self.updateuserid = updateuserid ?? -1 | |||
| } | |||
| @@ -116,6 +122,19 @@ extension mdlWorkOrder{ | |||
| try await database.schema("workOrder").delete() | |||
| } | |||
| } | |||
| struct Mod1: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("workOrder") | |||
| .field("workOrderFlowId", .int, .references("workOrderFlow", "id")) | |||
| .update() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("workOrder") | |||
| .deleteField("workOrderFlowId") | |||
| .update() | |||
| } | |||
| } | |||
| } | |||
| @@ -1,8 +1,69 @@ | |||
| // | |||
| // File 3.swift | |||
| // | |||
| // mdlWorkOrderFlow.swift | |||
| // | |||
| // Created by Michiel Carman on 4/3/24. | |||
| // | |||
| // Created by Michiel Carman on 2/16/24. | |||
| // | |||
| import Fluent | |||
| import Vapor | |||
| import Foundation | |||
| import FluentKit | |||
| final class mdlWorkOrderFlow: Model, Content { | |||
| static let schema = "workOrderFlow" | |||
| @ID(custom: "id", generatedBy: .database) var id: Int? | |||
| @Field(key: "name") var name: String? | |||
| @Field(key: "description") var description: String? | |||
| @Field(key: "sortOrder") var sortorder: Int? | |||
| @Field(key: "isActive") var isactive: Bool? | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | |||
| @Field(key: "updateUserId") var updateuserid: Int? | |||
| init() { } | |||
| init(id: Int? = nil, | |||
| name: String? = nil, | |||
| description: String? = nil, | |||
| sortorder: Int? = nil, | |||
| isactive: Bool? = nil, | |||
| createuserid: Int? = nil, | |||
| updateuserid: Int? = nil | |||
| ) { | |||
| self.id = id | |||
| self.name = name | |||
| self.description = description | |||
| self.sortorder = sortorder | |||
| self.isactive = isactive | |||
| self.createuserid = createuserid | |||
| self.updateuserid = updateuserid | |||
| } | |||
| } | |||
| extension mdlWorkOrderFlow{ | |||
| struct Create: AsyncMigration { | |||
| func prepare(on database: Database) async throws { | |||
| try await database.schema("workOrderFlow") | |||
| .field("id", .int, .identifier(auto: true)) | |||
| .field("name", .string) | |||
| .field("description", .string) | |||
| .field("sortOrder", .int) | |||
| .field("isActive", .bool) | |||
| .field("createDate", .datetime) | |||
| .field("createUserId", .int) | |||
| .field("updateDate", .datetime) | |||
| .field("updateUserId", .int) | |||
| .create() | |||
| } | |||
| func revert(on database: Database) async throws { | |||
| try await database.schema("workOrderFlow").delete() | |||
| } | |||
| } | |||
| } | |||
| @@ -21,6 +21,7 @@ final class mdlWorkOrderSegment: Model, Content { | |||
| @Children(for: \.$segment) var parts: [mdlWorkOrderPart] | |||
| @Children(for: \.$segment) var inspections: [mdlInspection] | |||
| @Children(for: \.$segment) var samples: [mdlOilSample] | |||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | |||
| @Field(key: "createUserId") var createuserid: Int? | |||
| @@ -104,6 +104,40 @@ public func configure(_ app: Application) async throws { | |||
| app.migrations.add(mdlXFluidViscosity.Mod1()) | |||
| app.migrations.add(mdlContact.Mod1()) | |||
| app.migrations.add(mdlResponseType.Mod1()) | |||
| app.migrations.add(mdlLabSetting.Mod1()) | |||
| app.migrations.add(mdlLabSetting.Mod2()) | |||
| app.migrations.add(mdlLocation.Mod1()) | |||
| app.migrations.add(mdlWorkOrderAttachment.Create()) | |||
| app.migrations.add(mdlWorkOrderFlow.Create()) | |||
| app.migrations.add(mdlWorkOrder.Mod1()) | |||
| app.migrations.add(mdlWorkOrderPart.Create()) | |||
| app.migrations.add(mdlWorkOrderPart.Mod1()) | |||
| app.migrations.add(mdlSignatureType.Mod1()) | |||
| app.migrations.add(mdlSignature.Create()) | |||
| app.migrations.add(mdlInspectionType.Create()) | |||
| app.migrations.add(mdlInspectionLevel.Create()) | |||
| app.migrations.add(mdlWorkOrderSegment.Create()) | |||
| app.migrations.add(mdlWorkOrderPart.Mod2()) | |||
| app.migrations.add(mdlXWorkOrderSegment.Delete()) | |||
| app.migrations.add(mdlInspection.Create()) | |||
| app.migrations.add(mdlInspectionCategory.Create()) | |||
| app.migrations.add(mdlInspectionItem.Create()) | |||
| app.migrations.add(mdlInspectionItemResponse.Create()) | |||
| app.migrations.add(mdlInspectionItem.Mod1()) | |||
| app.migrations.add(mdlInspectionItem.Mod2()) | |||
| app.migrations.add(mdlInspectionItemSpec.Create()) | |||
| app.migrations.add(mdlInspectionItemSpecItem.Create()) | |||
| app.migrations.add(mdlInspectionItemSpecItemTest.Create()) | |||
| app.migrations.add(mdlInspectionItemSpecItemValue.Create()) | |||
| app.migrations.add(mdlNote.Create()) | |||
| app.migrations.add(mdlNote.Mod1()) | |||
| app.migrations.add(mdlOilSample.Mod2()) | |||
| app.migrations.add(mdlConsumption.Create()) | |||
| app.migrations.add(mdlConsumption.Mod1()) | |||
| app.migrations.add(mdlTemplate.Create()) | |||
| app.migrations.add(mdlTemplate.Mod1()) | |||
| app.migrations.add(mdlTemplateCategory.Create()) | |||
| app.migrations.add(mdlTemplateItemSpec.Create()) | |||
| app.logger.logLevel = .debug | |||
| @@ -61,13 +61,30 @@ func routes(_ app: Application) throws { | |||
| try baseApp.register(collection: cntrlLabSetting()) | |||
| try baseApp.register(collection: cntrlXFluidViscosity()) | |||
| try baseApp.register(collection: cntrlXUserRole()) | |||
| try baseApp.register(collection: cntrlXWorkOrderSegment()) | |||
| //try baseApp.register(collection: cntrlXWorkOrderSegment()) | |||
| try baseApp.register(collection: cntrlOilSample()) | |||
| try baseApp.register(collection: cntrlSpec()) | |||
| try baseApp.register(collection: cntrlSpecItem()) | |||
| try baseApp.register(collection: cntrlSpecItemValue()) | |||
| try baseApp.register(collection: cntrlWorkOrder()) | |||
| try baseApp.register(collection: cntrlWorkorderFlow()) | |||
| try baseApp.register(collection: cntrlSignature()) | |||
| try baseApp.register(collection: cntrlWorkOrderPart()) | |||
| try baseApp.register(collection: cntrlWorkOrderAttachment()) | |||
| try baseApp.register(collection: cntrlInspectionType()) | |||
| try baseApp.register(collection: cntrlInspectionLevel()) | |||
| try baseApp.register(collection: cntrlWorkOrderSegment()) | |||
| try baseApp.register(collection: cntrlInspection()) | |||
| try baseApp.register(collection: cntrlInspectionCategory()) | |||
| try baseApp.register(collection: cntrlInspectionItem()) | |||
| try baseApp.register(collection: cntrlInspectionItemResponse()) | |||
| try baseApp.register(collection: cntrlInspectionItemSpec()) | |||
| try baseApp.register(collection: cntrlInspectionItemSpecItem()) | |||
| try baseApp.register(collection: cntrlInspectionItemSpecItemTest()) | |||
| try baseApp.register(collection: cntrlInspectionItemSpecItemValue()) | |||
| try baseApp.register(collection: cntrlNote()) | |||
| try baseApp.register(collection: cntrlConsumption()) | |||
| try baseApp.register(collection: cntrlTemplate()) | |||
| try baseApp.register(collection: cntrlTemplateCategory()) | |||
| try baseApp.register(collection: cntrlTemplateItemSpec()) | |||
| } | |||