| @@ -72,6 +72,9 @@ struct cntrlUser: RouteCollection { | |||||
| func create(req: Request) async throws -> mdlUser { | func create(req: Request) async throws -> mdlUser { | ||||
| let obj = try req.content.decode(mdlUser.self) | let obj = try req.content.decode(mdlUser.self) | ||||
| if(obj.id != nil){ | |||||
| obj._$idExists = true | |||||
| } | |||||
| try await obj.save(on: req.db) | try await obj.save(on: req.db) | ||||
| return obj | 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: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @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? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | ||||
| @@ -20,6 +20,7 @@ final class mdlResponseType: Model, Content { | |||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Parent(key: "repairTypeId") var repairtype: mdlRepairType | @Parent(key: "repairTypeId") var repairtype: mdlRepairType | ||||
| @Children(for: \.$responsetype) var responses: [mdlInspectionItemResponse] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -19,6 +19,9 @@ final class mdlCategory: Model, Content { | |||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @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? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @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: "name") var name: String? | ||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Children(for: \.$inputtype) var inspectionitems: [mdlInspectionItem] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | ||||
| @@ -26,9 +26,10 @@ final class mdlLocation: Model, Content { | |||||
| @Parent(key: "stateId") var state: mdlState | @Parent(key: "stateId") var state: mdlState | ||||
| @OptionalParent(key: "unitId") var unit: mdlUnit? | @OptionalParent(key: "unitId") var unit: mdlUnit? | ||||
| @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? | |||||
| // @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? | |||||
| @Children(for: \.$location) var users: [mdlUser] | @Children(for: \.$location) var users: [mdlUser] | ||||
| @OptionalChild(for: \.$location) var labsetting: mdlLabSetting? | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @@ -50,8 +51,7 @@ final class mdlLocation: Model, Content { | |||||
| createuserid: Int? = nil, | createuserid: Int? = nil, | ||||
| updateuserid: Int? = nil, | updateuserid: Int? = nil, | ||||
| stateid: Int? = nil, | stateid: Int? = nil, | ||||
| unitid: Int? = nil, | |||||
| labsettingid: Int? = nil | |||||
| unitid: Int? = nil | |||||
| ) { | ) { | ||||
| self.id = id | self.id = id | ||||
| @@ -69,7 +69,6 @@ final class mdlLocation: Model, Content { | |||||
| self.$state.$id.value = stateid! | self.$state.$id.value = stateid! | ||||
| self.$unit.$id.value = unitid! | self.$unit.$id.value = unitid! | ||||
| self.$labsetting.$id.value = labsettingid! | |||||
| } | } | ||||
| } | } | ||||
| @@ -100,6 +99,19 @@ extension mdlLocation{ | |||||
| try await database.schema("location").delete() | 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: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Children(for: \.$type) var notes: [mdlNote] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @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: "name") var name: String? | ||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Field(key: "isRequired") var isrequired: Bool? | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -26,12 +27,13 @@ final class mdlSignatureType: Model, Content { | |||||
| init() { } | 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.id = id | ||||
| self.name = name | self.name = name | ||||
| self.description = description | self.description = description | ||||
| self.isactive = isactive | self.isactive = isactive | ||||
| self.isrequired = isrequired | |||||
| self.createuserid = createuserid | self.createuserid = createuserid | ||||
| self.updateuserid = updateuserid | self.updateuserid = updateuserid | ||||
| @@ -57,6 +59,19 @@ extension mdlSignatureType{ | |||||
| try await database.schema("signatureType").delete() | 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 contacts: [mdlContact] | ||||
| @Children(for: \.$customer) var workorders: [mdlWorkOrder] | @Children(for: \.$customer) var workorders: [mdlWorkOrder] | ||||
| @Children(for: \.$customer) var templates: [mdlTemplate] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -24,6 +24,8 @@ final class mdlEquipment: Model, Content { | |||||
| @OptionalParent(key: "parentId") var parent: mdlEquipment? | @OptionalParent(key: "parentId") var parent: mdlEquipment? | ||||
| @Children(for: \.$equipment) var properties: [mdlObjProperty] | @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? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -19,6 +19,7 @@ final class mdlMake: Model, Content { | |||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Children(for: \.$make) var templates: [mdlTemplate] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -22,6 +22,8 @@ final class mdlModel: Model, Content { | |||||
| @Parent(key: "productId") var product: mdlProduct | @Parent(key: "productId") var product: mdlProduct | ||||
| @Parent(key: "makeId") var make: mdlMake | @Parent(key: "makeId") var make: mdlMake | ||||
| @Children(for: \.$model) var templates: [mdlTemplate] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -19,6 +19,7 @@ final class mdlProduct: Model, Content { | |||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Children(for: \.$product) var templates: [mdlTemplate] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -19,6 +19,8 @@ final class mdlItem: Model, Content { | |||||
| @Field(key: "description") var description: String? | @Field(key: "description") var description: String? | ||||
| @Field(key: "isActive") var isactive: Bool? | @Field(key: "isActive") var isactive: Bool? | ||||
| @Children(for: \.$item) var templateitems: [mdlTemplateItemSpec] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @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: "barcodeActive") var barcodeactive: Bool? | ||||
| @Field(key: "textActive") var textactive: Bool? | @Field(key: "textActive") var textactive: Bool? | ||||
| @Field(key: "logoActive") var logoactive: 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? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @@ -30,7 +33,7 @@ final class mdlLabSetting: Model, Content { | |||||
| init() { } | 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.id = id | ||||
| self.name = name | self.name = name | ||||
| @@ -42,6 +45,7 @@ final class mdlLabSetting: Model, Content { | |||||
| self.createuserid = createuserid | self.createuserid = createuserid | ||||
| self.updateuserid = updateuserid | self.updateuserid = updateuserid | ||||
| self.cpcl = cpcl | |||||
| } | } | ||||
| } | } | ||||
| @@ -67,6 +71,32 @@ extension mdlLabSetting{ | |||||
| try await database.schema("labSetting").delete() | 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: "workOrderId") var workorder: mdlWorkOrder | ||||
| @Parent(key: "segmentId") var segment: mdlSegment | @Parent(key: "segmentId") var segment: mdlSegment | ||||
| //@Children(for: \.$segment) var parts: [mdlWorkOrderPart] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @@ -55,6 +56,23 @@ extension mdlXWorkOrderSegment{ | |||||
| try await database.schema("user").delete() | 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 | @Parent(key: "itemId") var item: mdlItem | ||||
| @Children(for: \.$spec) var specitems: [mdlSpecItem] | @Children(for: \.$spec) var specitems: [mdlSpecItem] | ||||
| @Children(for: \.$spec) var templatespecs: [mdlTemplateItemSpec] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @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 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 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 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 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 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 | @Parent(key: "categoryId") var category: mdlCategory | ||||
| @Field(key: "summary") var summary: String? | @Field(key: "summary") var summary: String? | ||||
| @Children(for: \.$category) var inspectionitems: [mdlInspectionItem] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @Timestamp(key: "updateDate", on: .update) var updatedate: Date? | @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 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 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 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 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 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 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 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 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 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 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() | .update() | ||||
| } | } | ||||
| } | } | ||||
| struct Mod1: AsyncMigration{ | |||||
| struct Mod2: AsyncMigration{ | |||||
| func prepare(on database: Database) async throws { | func prepare(on database: Database) async throws { | ||||
| try await database.schema("oilSample") | try await database.schema("oilSample") | ||||
| .deleteField("segmentId") | .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 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: "reasonId") var reason: mdlReason? | ||||
| @OptionalParent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason? | @OptionalParent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason? | ||||
| @OptionalParent(key: "fuelId") var fuel: mdlFuel? | @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? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @Field(key: "createUserId") var createuserid: Int? | ||||
| @@ -59,6 +63,7 @@ final class mdlWorkOrder: Model, Content { | |||||
| , reasonid: Int? = nil | , reasonid: Int? = nil | ||||
| , incompletereasonid: Int? = nil | , incompletereasonid: Int? = nil | ||||
| , fuelid: Int? = nil | , fuelid: Int? = nil | ||||
| , workorderflowid: Int? = nil | |||||
| , createuserid: Int? = nil | , createuserid: Int? = nil | ||||
| , updateuserid: Int? = nil | , updateuserid: Int? = nil | ||||
| ) { | ) { | ||||
| @@ -79,6 +84,7 @@ final class mdlWorkOrder: Model, Content { | |||||
| self.$reason.$id.value = reasonid! | self.$reason.$id.value = reasonid! | ||||
| self.$incompletereason.$id.value = incompletereasonid! | self.$incompletereason.$id.value = incompletereasonid! | ||||
| self.$fuel.$id.value = fuelid! | self.$fuel.$id.value = fuelid! | ||||
| self.$workorderflow.$id.value = workorderflowid! | |||||
| self.createuserid = createuserid ?? -1 | self.createuserid = createuserid ?? -1 | ||||
| self.updateuserid = updateuserid ?? -1 | self.updateuserid = updateuserid ?? -1 | ||||
| } | } | ||||
| @@ -116,6 +122,19 @@ extension mdlWorkOrder{ | |||||
| try await database.schema("workOrder").delete() | 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 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 parts: [mdlWorkOrderPart] | ||||
| @Children(for: \.$segment) var inspections: [mdlInspection] | @Children(for: \.$segment) var inspections: [mdlInspection] | ||||
| @Children(for: \.$segment) var samples: [mdlOilSample] | |||||
| @Timestamp(key: "createDate", on: .create) var createdate: Date? | @Timestamp(key: "createDate", on: .create) var createdate: Date? | ||||
| @Field(key: "createUserId") var createuserid: Int? | @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(mdlXFluidViscosity.Mod1()) | ||||
| app.migrations.add(mdlContact.Mod1()) | app.migrations.add(mdlContact.Mod1()) | ||||
| app.migrations.add(mdlResponseType.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 | app.logger.logLevel = .debug | ||||
| @@ -61,13 +61,30 @@ func routes(_ app: Application) throws { | |||||
| try baseApp.register(collection: cntrlLabSetting()) | try baseApp.register(collection: cntrlLabSetting()) | ||||
| try baseApp.register(collection: cntrlXFluidViscosity()) | try baseApp.register(collection: cntrlXFluidViscosity()) | ||||
| try baseApp.register(collection: cntrlXUserRole()) | try baseApp.register(collection: cntrlXUserRole()) | ||||
| try baseApp.register(collection: cntrlXWorkOrderSegment()) | |||||
| //try baseApp.register(collection: cntrlXWorkOrderSegment()) | |||||
| try baseApp.register(collection: cntrlOilSample()) | try baseApp.register(collection: cntrlOilSample()) | ||||
| try baseApp.register(collection: cntrlSpec()) | try baseApp.register(collection: cntrlSpec()) | ||||
| try baseApp.register(collection: cntrlSpecItem()) | try baseApp.register(collection: cntrlSpecItem()) | ||||
| try baseApp.register(collection: cntrlSpecItemValue()) | try baseApp.register(collection: cntrlSpecItemValue()) | ||||
| try baseApp.register(collection: cntrlWorkOrder()) | 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()) | |||||
| } | } | ||||