diff --git a/Sources/App/Controllers/AuthControllers/cntrlUser.swift b/Sources/App/Controllers/AuthControllers/cntrlUser.swift index 2db1a49..28ff1ed 100644 --- a/Sources/App/Controllers/AuthControllers/cntrlUser.swift +++ b/Sources/App/Controllers/AuthControllers/cntrlUser.swift @@ -72,6 +72,9 @@ struct cntrlUser: RouteCollection { func create(req: Request) async throws -> mdlUser { let obj = try req.content.decode(mdlUser.self) + if(obj.id != nil){ + obj._$idExists = true + } try await obj.save(on: req.db) return obj } diff --git a/Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift b/Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift index d1f0508..f884a71 100644 --- a/Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift +++ b/Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift b/Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift index d1f0508..b3abc9c 100644 --- a/Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift +++ b/Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift b/Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift index d1f0508..e999ec0 100644 --- a/Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift +++ b/Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift b/Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift index d1f0508..2d55ebf 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift index 9017d4d..1c51b6b 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift index 9017d4d..bac9665 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift index 200068d..341378a 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift index d1f0508..5d9abd6 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift index d1f0508..da611c3 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift index d1f0508..8599391 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift index d1f0508..f2387c5 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift index d1f0508..0be63ec 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift index 9017d4d..8a77c6e 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift index 9017d4d..aa8324e 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift b/Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift index d1f0508..762d179 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift b/Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift index 9017d4d..ea61eec 100644 --- a/Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift +++ b/Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift b/Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift index 9017d4d..a5a8be8 100644 --- a/Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift +++ b/Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift b/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift index 9017d4d..cd2e216 100644 --- a/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift +++ b/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift @@ -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 + } +} diff --git a/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift b/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift index 9017d4d..34dfcdc 100644 --- a/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift +++ b/Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift @@ -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 + } +} diff --git a/Sources/App/Models/AuthTables/mdlSegment.swift b/Sources/App/Models/AuthTables/mdlSegment.swift index 27f6a9d..28ed1a3 100644 --- a/Sources/App/Models/AuthTables/mdlSegment.swift +++ b/Sources/App/Models/AuthTables/mdlSegment.swift @@ -20,8 +20,6 @@ final class mdlSegment: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? - @Siblings(through: mdlXWorkOrderSegment.self, from: \.$segment, to: \.$workorder) var workorders: [mdlWorkOrder] - @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift b/Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift index 0b4c511..e238884 100644 --- a/Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift +++ b/Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift @@ -20,6 +20,7 @@ final class mdlResponseType: Model, Content { @Field(key: "isActive") var isactive: Bool? @Parent(key: "repairTypeId") var repairtype: mdlRepairType + @Children(for: \.$responsetype) var responses: [mdlInspectionItemResponse] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/BaseTables/mdlCategory.swift b/Sources/App/Models/BaseTables/mdlCategory.swift index d77d592..8002fae 100644 --- a/Sources/App/Models/BaseTables/mdlCategory.swift +++ b/Sources/App/Models/BaseTables/mdlCategory.swift @@ -19,6 +19,9 @@ final class mdlCategory: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Children(for: \.$category) var categories: [mdlInspectionCategory] + @Children(for: \.$category) var templatecategories: [mdlTemplateCategory] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/BaseTables/mdlInputType.swift b/Sources/App/Models/BaseTables/mdlInputType.swift index 7432016..55a2f8f 100644 --- a/Sources/App/Models/BaseTables/mdlInputType.swift +++ b/Sources/App/Models/BaseTables/mdlInputType.swift @@ -18,6 +18,8 @@ final class mdlInputType: Model, Content { @Field(key: "name") var name: String? @Field(key: "description") var description: String? + @Children(for: \.$inputtype) var inspectionitems: [mdlInspectionItem] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/BaseTables/mdlLocation.swift b/Sources/App/Models/BaseTables/mdlLocation.swift index 0028884..d385a68 100644 --- a/Sources/App/Models/BaseTables/mdlLocation.swift +++ b/Sources/App/Models/BaseTables/mdlLocation.swift @@ -26,9 +26,10 @@ final class mdlLocation: Model, Content { @Parent(key: "stateId") var state: mdlState @OptionalParent(key: "unitId") var unit: mdlUnit? - @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? +// @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting? @Children(for: \.$location) var users: [mdlUser] + @OptionalChild(for: \.$location) var labsetting: mdlLabSetting? @Timestamp(key: "createDate", on: .create) var createdate: Date? @@ -50,8 +51,7 @@ final class mdlLocation: Model, Content { createuserid: Int? = nil, updateuserid: Int? = nil, stateid: Int? = nil, - unitid: Int? = nil, - labsettingid: Int? = nil + unitid: Int? = nil ) { self.id = id @@ -69,7 +69,6 @@ final class mdlLocation: Model, Content { self.$state.$id.value = stateid! self.$unit.$id.value = unitid! - self.$labsetting.$id.value = labsettingid! } } @@ -100,6 +99,19 @@ extension mdlLocation{ try await database.schema("location").delete() } } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("location") + .deleteField("labSettingId") + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("location") + .field("labSettingId", .int) + .update() + } + } } diff --git a/Sources/App/Models/BaseTables/mdlNoteType.swift b/Sources/App/Models/BaseTables/mdlNoteType.swift index 166485b..1fa1088 100644 --- a/Sources/App/Models/BaseTables/mdlNoteType.swift +++ b/Sources/App/Models/BaseTables/mdlNoteType.swift @@ -19,6 +19,8 @@ final class mdlNoteType: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Children(for: \.$type) var notes: [mdlNote] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/BaseTables/mdlSignatureType.swift b/Sources/App/Models/BaseTables/mdlSignatureType.swift index 6d7c5cc..1816559 100644 --- a/Sources/App/Models/BaseTables/mdlSignatureType.swift +++ b/Sources/App/Models/BaseTables/mdlSignatureType.swift @@ -18,6 +18,7 @@ final class mdlSignatureType: Model, Content { @Field(key: "name") var name: String? @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Field(key: "isRequired") var isrequired: Bool? @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @@ -26,12 +27,13 @@ final class mdlSignatureType: Model, Content { init() { } - init(id: Int? = nil, name: String? = nil, description: String? = nil, isactive: Bool? = true, createuserid: Int? = nil, updateuserid: Int? = nil) { + init(id: Int? = nil, name: String? = nil, description: String? = nil, isactive: Bool? = true, isrequired: Bool? = false, createuserid: Int? = nil, updateuserid: Int? = nil) { self.id = id self.name = name self.description = description self.isactive = isactive + self.isrequired = isrequired self.createuserid = createuserid self.updateuserid = updateuserid @@ -57,6 +59,19 @@ extension mdlSignatureType{ try await database.schema("signatureType").delete() } } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("signatureType") + .field("isRequired", .bool) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("signatureType") + .deleteField("isRequired") + .update() + } + } } diff --git a/Sources/App/Models/CustomerTables/mdlCustomer.swift b/Sources/App/Models/CustomerTables/mdlCustomer.swift index 55e7612..da0e26c 100644 --- a/Sources/App/Models/CustomerTables/mdlCustomer.swift +++ b/Sources/App/Models/CustomerTables/mdlCustomer.swift @@ -21,6 +21,7 @@ final class mdlCustomer: Model, Content { @Children(for: \.$customer) var contacts: [mdlContact] @Children(for: \.$customer) var workorders: [mdlWorkOrder] + @Children(for: \.$customer) var templates: [mdlTemplate] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/CustomerTables/mdlEquipment.swift b/Sources/App/Models/CustomerTables/mdlEquipment.swift index d3ce37e..48e1a1c 100644 --- a/Sources/App/Models/CustomerTables/mdlEquipment.swift +++ b/Sources/App/Models/CustomerTables/mdlEquipment.swift @@ -24,6 +24,8 @@ final class mdlEquipment: Model, Content { @OptionalParent(key: "parentId") var parent: mdlEquipment? @Children(for: \.$equipment) var properties: [mdlObjProperty] + @Children(for: \.$equipment) var templates: [mdlTemplate] + @Siblings(through: mdlWorkOrderAttachment.self, from: \.$equipment, to: \.$workorder) var workorders: [mdlWorkOrder] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/CustomerTables/mdlMake.swift b/Sources/App/Models/CustomerTables/mdlMake.swift index 1bdc4e4..3b63975 100644 --- a/Sources/App/Models/CustomerTables/mdlMake.swift +++ b/Sources/App/Models/CustomerTables/mdlMake.swift @@ -19,6 +19,7 @@ final class mdlMake: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Children(for: \.$make) var templates: [mdlTemplate] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/CustomerTables/mdlModel.swift b/Sources/App/Models/CustomerTables/mdlModel.swift index 35b4ab0..862ac83 100644 --- a/Sources/App/Models/CustomerTables/mdlModel.swift +++ b/Sources/App/Models/CustomerTables/mdlModel.swift @@ -22,6 +22,8 @@ final class mdlModel: Model, Content { @Parent(key: "productId") var product: mdlProduct @Parent(key: "makeId") var make: mdlMake + @Children(for: \.$model) var templates: [mdlTemplate] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/CustomerTables/mdlProduct.swift b/Sources/App/Models/CustomerTables/mdlProduct.swift index e4db74e..cef929d 100644 --- a/Sources/App/Models/CustomerTables/mdlProduct.swift +++ b/Sources/App/Models/CustomerTables/mdlProduct.swift @@ -19,6 +19,7 @@ final class mdlProduct: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Children(for: \.$product) var templates: [mdlTemplate] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/ItemTables/mdlItem.swift b/Sources/App/Models/ItemTables/mdlItem.swift index accb038..41aca42 100644 --- a/Sources/App/Models/ItemTables/mdlItem.swift +++ b/Sources/App/Models/ItemTables/mdlItem.swift @@ -19,6 +19,8 @@ final class mdlItem: Model, Content { @Field(key: "description") var description: String? @Field(key: "isActive") var isactive: Bool? + @Children(for: \.$item) var templateitems: [mdlTemplateItemSpec] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/LabTables/mdlLabSetting.swift b/Sources/App/Models/LabTables/mdlLabSetting.swift index f9aee6d..d60204f 100644 --- a/Sources/App/Models/LabTables/mdlLabSetting.swift +++ b/Sources/App/Models/LabTables/mdlLabSetting.swift @@ -21,6 +21,9 @@ final class mdlLabSetting: Model, Content { @Field(key: "barcodeActive") var barcodeactive: Bool? @Field(key: "textActive") var textactive: Bool? @Field(key: "logoActive") var logoactive: Bool? + @Field(key: "cpcl") var cpcl: String? + + @Parent(key: "locationId") var location: mdlLocation @Timestamp(key: "createDate", on: .create) var createdate: Date? @@ -30,7 +33,7 @@ final class mdlLabSetting: Model, Content { init() { } - init(id: Int? = nil, name: String? = nil, description: String? = nil, barcodedelimeter: String? = nil, barcodeactive: Bool? = nil, textactive: Bool? = nil, logoactive: Bool? = nil, createuserid: Int? = nil, updateuserid: Int? = nil) { + init(id: Int? = nil, name: String? = nil, description: String? = nil, barcodedelimeter: String? = nil, barcodeactive: Bool? = nil, textactive: Bool? = nil, logoactive: Bool? = nil, createuserid: Int? = nil, updateuserid: Int? = nil, cpc: String? = nil) { self.id = id self.name = name @@ -42,6 +45,7 @@ final class mdlLabSetting: Model, Content { self.createuserid = createuserid self.updateuserid = updateuserid + self.cpcl = cpcl } } @@ -67,6 +71,32 @@ extension mdlLabSetting{ try await database.schema("labSetting").delete() } } + struct Mod1: AsyncMigration{ + func prepare(on database: Database) async throws { + try await database.schema("labSetting") + .field("cpcl", .string) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("labSetting") + .deleteField("cpcl") + .update() + } + } + struct Mod2: AsyncMigration{ + func prepare(on database: Database) async throws { + try await database.schema("labSetting") + .field("locationId", .int, .references("location", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("labSetting") + .deleteField("locationId") + .update() + } + } } diff --git a/Sources/App/Models/LinkingTables/XWorkOrderSegment.swift b/Sources/App/Models/LinkingTables/XWorkOrderSegment.swift index 9ef6735..1e11016 100644 --- a/Sources/App/Models/LinkingTables/XWorkOrderSegment.swift +++ b/Sources/App/Models/LinkingTables/XWorkOrderSegment.swift @@ -17,6 +17,7 @@ final class mdlXWorkOrderSegment: Model, Content { @Parent(key: "workOrderId") var workorder: mdlWorkOrder @Parent(key: "segmentId") var segment: mdlSegment + //@Children(for: \.$segment) var parts: [mdlWorkOrderPart] @Timestamp(key: "createDate", on: .create) var createdate: Date? @@ -55,6 +56,23 @@ extension mdlXWorkOrderSegment{ try await database.schema("user").delete() } } + struct Delete: AsyncMigration { + func revert(on database: Database) async throws { + try await database.schema("xWorkOrderSegment") + .field("id", .int, .identifier(auto: true)) + .field("workOrderId", .int, .references("workOrder", "id")) + .field("segmentId", .int, .references("segment", "id")) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func prepare(on database: Database) async throws { + try await database.schema("xWorkOrderSegment").delete() + } + } } diff --git a/Sources/App/Models/SpecTables/mdlSpec.swift b/Sources/App/Models/SpecTables/mdlSpec.swift index 627e686..e4e9806 100644 --- a/Sources/App/Models/SpecTables/mdlSpec.swift +++ b/Sources/App/Models/SpecTables/mdlSpec.swift @@ -21,6 +21,7 @@ final class mdlSpec: Model, Content { @Parent(key: "itemId") var item: mdlItem @Children(for: \.$spec) var specitems: [mdlSpecItem] + @Children(for: \.$spec) var templatespecs: [mdlTemplateItemSpec] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/Models/TemplateTables/mdlTemplate.swift b/Sources/App/Models/TemplateTables/mdlTemplate.swift index d1f0508..ec37bd1 100644 --- a/Sources/App/Models/TemplateTables/mdlTemplate.swift +++ b/Sources/App/Models/TemplateTables/mdlTemplate.swift @@ -1,8 +1,107 @@ // -// File.swift -// +// mdlTemplate.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlTemplate: Model, Content { + static let schema = "template" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @OptionalParent(key: "inspectionLevelId") var level: mdlInspectionLevel? + @OptionalParent(key: "productId") var product: mdlProduct? + @OptionalParent(key: "makeId") var make: mdlMake? + @OptionalParent(key: "modelId") var model: mdlModel? + @OptionalParent(key: "customerId") var customer: mdlCustomer? + @OptionalParent(key: "equipmentId") var equipment: mdlEquipment? + + @Children(for: \.$template) var categories: [mdlTemplateCategory] + + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "isActive") var isactive: Bool? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + levelid: Int? = nil, + productid: Int? = nil, + makeid: Int? = nil, + modelid: Int? = nil, + customerid: Int? = nil, + equipmentid: Int? = nil, + name: String? = nil, + description: String? = nil, + isactive: Bool? = true, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$level.$id.value = levelid! + self.$product.$id.value = productid! + self.$make.$id.value = makeid! + self.$model.$id.value = modelid! + self.$customer.$id.value = customerid! + self.$equipment.$id.value = equipmentid! + self.name = name + self.description = description + self.isactive = isactive + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlTemplate{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("template") + .field("id", .int, .identifier(auto: true)) + .field("inspectionLevelId", .int, .references("inspectionLevel", "id")) + .field("productId", .int, .references("product", "id")) + .field("makeId", .int, .references("make", "id")) + .field("modelId", .int, .references("model", "id")) + .field("customerId", .int, .references("customer", "id")) + .field("equipment", .int, .references("equipment", "id")) + .field("name", .string) + .field("description", .string) + .field("isActive", .bool) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("template").delete() + } + } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("template") + .deleteField("equipment") + .field("equipmentId", .int, .references("equipment", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("template") + .deleteField("equipmentId") + .field("equipment", .int, .references("equipment", "id")) + .update() + } + } +} + diff --git a/Sources/App/Models/TemplateTables/mdlTemplateCategory.swift b/Sources/App/Models/TemplateTables/mdlTemplateCategory.swift index d1f0508..8e27751 100644 --- a/Sources/App/Models/TemplateTables/mdlTemplateCategory.swift +++ b/Sources/App/Models/TemplateTables/mdlTemplateCategory.swift @@ -1,8 +1,68 @@ // -// File.swift -// +// mdlTemplateCategory.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlTemplateCategory: Model, Content { + static let schema = "templateCategory" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "templateId") var template: mdlTemplate + @Parent(key: "categoryId") var category: mdlCategory + + @Children(for: \.$templatecategory) var items: [mdlTemplateItemSpec] + + @Field(key: "sortOrder") var sortorder: Int? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + templateid: Int, + categoryid: Int, + sortorder: Int? = 0, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$template.$id.value = templateid + self.$category.$id.value = categoryid + self.sortorder = sortorder + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlTemplateCategory{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("templateCategory") + .field("id", .int, .identifier(auto: true)) + .field("templateId", .int, .references("template", "id")) + .field("categoryId", .int, .references("category", "id")) + .field("sortOrder", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("templateCategory").delete() + } + } +} + diff --git a/Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift b/Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift index d1f0508..cff12dd 100644 --- a/Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift +++ b/Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift @@ -1,8 +1,70 @@ // -// File.swift -// +// mdlTemplateItemSpec.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlTemplateItemSpec: Model, Content { + static let schema = "templateItemSpec" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "templateCategoryId") var templatecategory: mdlTemplateCategory + @OptionalParent(key: "itemId") var item: mdlItem? + @OptionalParent(key: "specId") var spec: mdlSpec? + + @Field(key: "sortOrder") var sortorder: Int? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + categoryid: Int, + itemid: Int? = nil, + specid: Int? = nil, + sortorder: Int? = 0, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$templatecategory.$id.value = categoryid + self.$item.$id.value = itemid + self.$spec.$id.value = specid + self.sortorder = sortorder + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlTemplateItemSpec{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("templateItemSpec") + .field("id", .int, .identifier(auto: true)) + .field("templateCategoryId", .int, .references("templateCategory", "id")) + .field("itemId", .int, .references("item", "id")) + .field("specId", .int, .references("spec", "id")) + .field("sortOrder", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("templateItemSpec").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift b/Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift index d1f0508..4c1f7c1 100644 --- a/Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift +++ b/Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift @@ -1,8 +1,93 @@ // -// File.swift -// +// mdlConsumption.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlConsumption: Model, Content { + static let schema = "consumption" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "workOrderSegmentId") var segmaent: mdlWorkOrderSegment + @Parent(key: "fluidId") var fluid: mdlFluid + @Parent(key: "viscosityId") var viscosity: mdlViscosity + + @Field(key: "quantity") var quantity: Float? + @Field(key: "sortOrder") var sortorder: Int? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + segmentid: Int, + fluidid: Int, + viscosityid: Int, + quantity: Float? = nil, + sortorder: Int? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$segmaent.$id.value = segmentid + self.$fluid.$id.value = fluidid + self.$viscosity.$id.value = viscosityid + self.quantity = quantity + self.sortorder = sortorder + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlConsumption{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("consumption") + .field("id", .int, .identifier(auto: true)) + .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) + .field("fluid", .int, .references("fluid", "id")) + .field("viscosity", .int, .references("viscosity", "id")) + .field("quantity", .float) + .field("sortOrder", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("consumption").delete() + } + } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("consumption") + .deleteField("fluid") + .deleteField("viscosity") + .field("fluidId", .int, .references("fluid", "id")) + .field("viscosityId", .int, .references("viscosity", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("consumption") + .deleteField("fluidId") + .deleteField("viscosityId") + .field("fluid", .int, .references("fluid", "id")) + .field("viscosity", .int, .references("viscosity", "id")) + .update() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift index 9017d4d..818f832 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift @@ -1,8 +1,73 @@ // -// File.swift -// +// mdlInspection.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspection: Model, Content { + static let schema = "inspection" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "workOrderSegmentId") var segment: mdlWorkOrderSegment + @Parent(key: "inspectionLevelId") var level: mdlInspectionLevel + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "interval") var interval: String? + + @Children(for: \.$inspection) var categories: [mdlInspectionCategory] + @Children(for: \.$inspection) var notes: [mdlNote] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + name: String? = nil, + description: String? = nil, + segmentid: Int, + levelid: Int, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.name = name + self.description = description + self.$segment.$id.value = segmentid + self.$level.$id.value = levelid + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspection{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspection") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("description", .string) + .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) + .field("inspectionLevelId", .int, .references("inspectionLevel", "id")) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspection").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift index e8d970e..aa692b4 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift @@ -20,6 +20,8 @@ final class mdlInspectionCategory: Model, Content { @Parent(key: "categoryId") var category: mdlCategory @Field(key: "summary") var summary: String? + @Children(for: \.$category) var inspectionitems: [mdlInspectionItem] + @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @Timestamp(key: "updateDate", on: .update) var updatedate: Date? diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift index d1f0508..d7f3dd0 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift @@ -1,8 +1,114 @@ // -// File.swift -// +// mdlInspectionItem.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItem: Model, Content { + static let schema = "inspectionItem" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "inspectionCategoryId") var category: mdlInspectionCategory + @Parent(key: "inputTypeId") var inputtype: mdlInputType + @OptionalParent(key: "smscCodeId") var smsccode: mdlSMSCCode? + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "sortOrder") var sortorder: Int? + @OptionalParent(key: "previousInspectionItemId") var previousinspectionitem: mdlInspectionItem? + @OptionalParent(key: "previousInspectionItemResponseId") var previousinspectionitemresponse: mdlInspectionItemResponse? + + @Children(for: \.$inspectionitem) var responses: [mdlInspectionItemResponse] + @Children(for: \.$inspectionitem) var specs: [mdlInspectionItemSpec] + @Children(for: \.$item) var notes: [mdlNote] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + inspectioncategoryid: Int, + inputtypeid: Int, + smsccodeid: Int? = nil, + name: String? = nil, + description: String? = nil, + sortorder: Int? = 0, + previousinspectionitemid: Int? = nil, + previousinspectionitemresponseid: Int? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$category.$id.value = inspectioncategoryid + self.$inputtype.$id.value = inputtypeid + self.name = name + self.description = description + self.sortorder = sortorder + self.$previousinspectionitem.$id.value = previousinspectionitemid + self.$previousinspectionitemresponse.$id.value = previousinspectionitemresponseid + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItem{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItem") + .field("id", .int, .identifier(auto: true)) + .field("inspectionCategoryId", .int, .references("inspectionCategory", "id")) + .field("inputTypeId", .int, .references("inputType", "id")) + .field("name", .string) + .field("description", .string) + .field("sortOrder", .int) + .field("previousInspectionItemId", .int, .references("inspectionItem", "id")) + //.field("previousInspectionItemResponsId", .int, .references("inspectionItemResponse", "id")) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItem").delete() + } + } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItem") + .field("previousInspectionItemResponseId", .int, .references("inspectionItemResponse", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItem") + .deleteField("previousInspectionItemResponsId") + .update() + } + } + struct Mod2: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItem") + .field("smscCodeId", .int, .references("smscCode", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItem") + .deleteField("previousInspectionItemResponsId") + .update() + } + } + +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift index d1f0508..9053453 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift @@ -1,8 +1,74 @@ // -// File.swift -// +// mdlInspectionItemResposne.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItemResponse: Model, Content { + static let schema = "inspectionItemResponse" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "inspectionItemId") var inspectionitem: mdlInspectionItem + @Parent(key: "responseTypeId") var responsetype: mdlResponseType + + @Field(key: "name") var name: String? + @Field(key: "sortOrder") var sortorder: Int? + @Field(key: "isSelected") var isselected: Bool? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + inspectionitemid: Int, + responsetypeid: Int, + name: String? = nil, + sortorder: Int? = 0, + isselected: Bool? = false, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$inspectionitem.$id.value = inspectionitemid + self.$responsetype.$id.value = responsetypeid + self.name = name + self.sortorder = sortorder + self.isselected = isselected + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItemResponse{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItemResponse") + .field("id", .int, .identifier(auto: true)) + .field("inspectionItemId", .int, .references("inspectionItem", "id")) + .field("responseTypeId", .int, .references("responseType", "id")) + .field("name", .string) + .field("sortOrder", .int) + .field("isSelected", .bool) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItemResponse").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift index d1f0508..05b6363 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift @@ -1,8 +1,66 @@ // -// File.swift -// +// mdlInspectionItemSpec.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItemSpec: Model, Content { + static let schema = "inspectionItemSpec" + + @ID(custom: "id", generatedBy: .database) var id: Int? + @Parent(key: "inspectionItemId") var inspectionitem: mdlInspectionItem + @Field(key: "name") var name: String? + @Field(key: "numberOfTests") var numberoftests: Int? + + @Children(for: \.$inspectionitemspec) var items: [mdlInspectionItemSpecItem] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + name: String? = nil, + numberoftests: Int? = 1, + inspectionitemid: Int, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.name = name + self.numberoftests = numberoftests + self.$inspectionitem.$id.value = inspectionitemid + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItemSpec{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItemSpec") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("numberOfTests", .int) + .field("inspectionItemId", .int, .references("inspectionItem", "id")) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItemSpec").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift index d1f0508..2e1e94d 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift @@ -1,8 +1,87 @@ // -// File.swift -// +// mdlInspectionItemSpecItem.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItemSpecItem: Model, Content { + static let schema = "inspectionItemSpecItem" + + @ID(custom: "id", generatedBy: .database) var id: Int? + @Parent(key: "inspectionItemSpecId") var inspectionitemspec: mdlInspectionItemSpec + @Parent(key: "comparisonTypeId") var comparisontype: mdlComparisonType + @Parent(key: "unitId") var unit: mdlUnit + @Field(key: "name") var name: String? + @Field(key: "average") var average: Float? + @Field(key: "qualifier") var qualifier: String? + @Field(key: "result") var result: String? + @Field(key: "sortOrder") var sortorder: Int? + + @Children(for: \.$specitem) var tests: [mdlInspectionItemSpecItemTest] + @Children(for: \.$specitem) var values: [mdlInspectionItemSpecItemValue] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + inspectionitemspecid: Int, + comparisontypeid: Int, + unitid: Int, + name: String? = nil, + average: Float? = nil, + qualifier: String? = nil, + result: String? = nil, + sortorder: Int? = 0, + createuserid: Int? = -1, + updateuserid: Int? = -1 + ) { + self.id = id + self.$inspectionitemspec.$id.value = inspectionitemspecid + self.$comparisontype.$id.value = comparisontypeid + self.$unit.$id.value = unitid + self.name = name + self.average = average + self.qualifier = qualifier + self.result = result + self.sortorder = sortorder + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItemSpecItem{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItemSpecItem") + .field("id", .int, .identifier(auto: true)) + .field("inspectionItemSpecId", .int, .references("inspectionItemSpec", "id")) + .field("comparisonTypeId", .int, .references("comparisonType", "id")) + .field("unitId", .int, .references("unit", "id")) + .field("name", .string) + .field("average", .float) + .field("qualifier", .string) + .field("result", .string) + .field("sortOrder", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItemSpecItem").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift index d1f0508..001cee0 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift @@ -1,8 +1,64 @@ // -// File.swift -// +// cntrlInspectionItemSpecItemTest.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItemSpecItemTest: Model, Content { + static let schema = "inspectionItemSpecItemTest" + + @ID(custom: "id", generatedBy: .database) var id: Int? + @Parent(key: "inspectionItemSpecItemId") var specitem: mdlInspectionItemSpecItem + @Field(key: "number") var number: Int? + @Field(key: "value") var value: String? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + specitemid: Int, + number: Int? = nil, + value: String? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$specitem.$id.value = specitemid + self.number = number + self.value = value + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItemSpecItemTest{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItemSpecItemTest") + .field("id", .int, .identifier(auto: true)) + .field("inspectionItemSpecItemId", .int, .references("inspectionItemSpecItem", "id")) + .field("number", .int) + .field("value", .string) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItemSpecItemTest").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift index d1f0508..f82129a 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift @@ -1,8 +1,64 @@ // -// File.swift -// +// mdlInspectionItemSpecItemValue.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionItemSpecItemValue: Model, Content { + static let schema = "inspectionItemSpecItemValue" + + @ID(custom: "id", generatedBy: .database) var id: Int? + @Parent(key: "inspectionItemSpecItemId") var specitem: mdlInspectionItemSpecItem + @Parent(key: "valueTypeId") var valuetype: mdlValueType + @Field(key: "value") var value: String? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + specitemid: Int, + valuetypeid: Int, + value: String? = nil, + createuserid: Int? = -1, + updateuserid: Int? = -1 + ) { + self.id = id + self.$specitem.$id.value = specitemid + self.$valuetype.$id.value = valuetypeid + self.value = value + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionItemSpecItemValue{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionItemSpecItemValue") + .field("id", .int, .identifier(auto: true)) + .field("inspectionItemSpecItemId", .int, .references("inspectionItemSpecItem", "id")) + .field("valueTypeId", .int, .references("valueType", "id")) + .field("value", .string) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionItemSpecItemValue").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift index 9017d4d..6b26933 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift @@ -1,8 +1,71 @@ // -// File.swift -// +// mdlInspectionLevel.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionLevel: Model, Content { + static let schema = "inspectionLevel" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "isActive") var isactive: Bool? + @Parent(key: "inspectionTypeId") var inspectiontype: mdlInspectionType + @Children(for: \.$level) var inspections: [mdlInspection] + @Children(for: \.$level) var templates: [mdlTemplate] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + name: String? = nil, + description: String? = nil, + isactive: Bool? = true, + inspectiontypeid: Int, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.name = name + self.description = description + self.isactive = isactive + self.$inspectiontype.$id.value = inspectiontypeid + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionLevel{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionLevel") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("description", .string) + .field("isactive", .bool) + .field("inspectionTypeId", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionLevel").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift index 9017d4d..c8abf90 100644 --- a/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift +++ b/Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift @@ -1,8 +1,69 @@ // -// File.swift -// +// mdlInspectionType.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlInspectionType: Model, Content { + static let schema = "inspectionType" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "isActive") var isactive: Bool? + + @Children(for: \.$inspectiontype) var inspectionlevels: [mdlInspectionLevel] + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + + init() { } + + init(id: Int? = nil, + name: String? = nil, + description: String? = nil, + isactive: Bool? = true, + ending: Int? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.name = name + self.description = description + self.isactive = isactive + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlInspectionType{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("inspectionType") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("description", .string) + .field("isActive", .bool) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("inspectionType").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift b/Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift index d1f0508..c864c8b 100644 --- a/Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift +++ b/Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift @@ -1,8 +1,93 @@ // -// File.swift -// +// mdlNote.swift // -// Created by Michiel Carman on 4/4/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlNote: Model, Content { + static let schema = "note" + + @ID(custom: "id", generatedBy: .database) var id: Int? + @Parent(key: "noteTypeId") var type: mdlNoteType + @Field(key: "text") var text: String? + @Field(key: "filePath") var filepath: String? + + @OptionalParent(key: "workOrderId") var workorder: mdlWorkOrder? + @OptionalParent(key: "inspectionId") var inspection: mdlInspection? + @OptionalParent(key: "inspectionItemId") var item: mdlInspectionItem? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + typeid: Int, + text: String? = nil, + filepath: String? = nil, + workorderid: Int? = nil, + inspectionid: Int? = nil, + inspectionitemid: Int? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$type.$id.value = typeid + self.text = text + self.filepath = filepath + self.$workorder.$id.value = workorderid! + self.$inspection.$id.value = inspectionid! + self.$item.$id.value = inspectionitemid! + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlNote{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("note") + .field("id", .int, .identifier(auto: true)) + .field("noteTypeId", .int, .references("noteType", "id")) + .field("workOrderId", .int, .references("workOrder", "id")) + .field("inspectionId", .int, .references("inspection", "id")) + .field("inspectionItemId", .int, .references("inspectionItem", "id")) + + .field("text", .string) + .field("filepath", .string) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("note").delete() + } + } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("note") + .deleteField("filepath") + .field("filePath", .string) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("note") + .deleteField("filePath") + .field("filepath", .string) + .update() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift b/Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift index caf7b5c..3ca0f55 100644 --- a/Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift +++ b/Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift @@ -1,8 +1,104 @@ // -// File 4.swift -// +// mdlWorkOrderPart.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlWorkOrderPart: Model, Content { + static let schema = "workOrderPart" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Parent(key: "partId") var part: mdlPart + @Parent(key: "workOrderSegmentId") var segment: mdlWorkOrderSegment + + @Field(key: "refDocNumber") var refdocnumber: String? + @Field(key: "qtyIssued") var qtyissued: Decimal? + @Field(key: "qtyReturned") var qtyreturned: Decimal? + + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + partid: Int, + segment: Int, + refdocnumber: String? = nil, + qtyissued: Decimal? = nil, + qtyreturned: Decimal? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.$part.$id.value = partid + self.$segment.$id.value = segment + self.refdocnumber = refdocnumber + self.qtyissued = qtyissued + self.qtyreturned = qtyreturned + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlWorkOrderPart{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("workOrderParts") + .field("id", .int, .identifier(auto: true)) + .field("partId", .int, .references("part", "id")) + .field("segmentId", .int, .references("xWorkOrderSegment", "id")) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("workOrderParts").delete() + } + } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("workOrderParts") + .field("refDocNumber", .string) + .field("qtyIssued", .double) + .field("qtyReturned", .double) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("workOrderParts") + .deleteField("refDocNumber") + .deleteField("qtyIssued") + .deleteField("qtyReturned") + .update() + } + } + struct Mod2: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("workOrderParts") + .deleteField("segmentId") + .field("workOrderSegmentId", .int, .references("workOrderSegment", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("workOrderParts") + .deleteField("workOrderSegmentId") + .field("segmentId", .int, .references("xWorkOrderSegment", "id")) + .update() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift b/Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift index 965127e..bd48de0 100644 --- a/Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift +++ b/Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift @@ -120,7 +120,7 @@ extension mdlOilSample{ .update() } } - struct Mod1: AsyncMigration{ + struct Mod2: AsyncMigration{ func prepare(on database: Database) async throws { try await database.schema("oilSample") .deleteField("segmentId") diff --git a/Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift b/Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift index 9017d4d..2718014 100644 --- a/Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift +++ b/Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift @@ -1,8 +1,69 @@ // -// File.swift -// +// mdlSignature.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlSignature: Model, Content { + static let schema = "signature" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Field(key: "name") var name: String + @Field(key: "type") var type: String + @Field(key: "data") var data: Data + @Parent(key: "workOrderId") var workorder: mdlWorkOrder + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + name: String, + type: String, + data: Data, + workorderid: Int, + createuserid: Int? = -1, + updateuserid: Int? = -1 + ) { + self.id = id + self.name = name + self.type = type + self.data = data + self.$workorder.$id.value = workorderid + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlSignature{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("signature") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("type", .string) + .field("data", .data) + .field("workOrderId", .int) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("signature").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift b/Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift index 88f281d..0747204 100644 --- a/Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift +++ b/Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift @@ -32,8 +32,12 @@ final class mdlWorkOrder: Model, Content { @OptionalParent(key: "reasonId") var reason: mdlReason? @OptionalParent(key: "incompleteReasonId") var incompletereason: mdlIncompleteReason? @OptionalParent(key: "fuelId") var fuel: mdlFuel? + @OptionalParent(key: "workOrderFlowId") var workorderflow: mdlWorkOrderFlow? - @Siblings(through: mdlXWorkOrderSegment.self, from: \.$workorder, to: \.$segment) var segments: [mdlSegment] + @Siblings(through: mdlWorkOrderAttachment.self, from: \.$workorder, to: \.$equipment) var equipments: [mdlEquipment] + + @Children(for: \.$workorder) var signatures: [mdlSignature] + @Children(for: \.$workorder) var notes: [mdlNote] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? @@ -59,6 +63,7 @@ final class mdlWorkOrder: Model, Content { , reasonid: Int? = nil , incompletereasonid: Int? = nil , fuelid: Int? = nil + , workorderflowid: Int? = nil , createuserid: Int? = nil , updateuserid: Int? = nil ) { @@ -79,6 +84,7 @@ final class mdlWorkOrder: Model, Content { self.$reason.$id.value = reasonid! self.$incompletereason.$id.value = incompletereasonid! self.$fuel.$id.value = fuelid! + self.$workorderflow.$id.value = workorderflowid! self.createuserid = createuserid ?? -1 self.updateuserid = updateuserid ?? -1 } @@ -116,6 +122,19 @@ extension mdlWorkOrder{ try await database.schema("workOrder").delete() } } + struct Mod1: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("workOrder") + .field("workOrderFlowId", .int, .references("workOrderFlow", "id")) + .update() + } + + func revert(on database: Database) async throws { + try await database.schema("workOrder") + .deleteField("workOrderFlowId") + .update() + } + } } diff --git a/Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift b/Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift index 2dd51e2..49262e1 100644 --- a/Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift +++ b/Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift @@ -1,8 +1,69 @@ // -// File 3.swift -// +// mdlWorkOrderFlow.swift // -// Created by Michiel Carman on 4/3/24. // +// Created by Michiel Carman on 2/16/24. +// + +import Fluent +import Vapor import Foundation +import FluentKit + +final class mdlWorkOrderFlow: Model, Content { + static let schema = "workOrderFlow" + + @ID(custom: "id", generatedBy: .database) var id: Int? + + @Field(key: "name") var name: String? + @Field(key: "description") var description: String? + @Field(key: "sortOrder") var sortorder: Int? + @Field(key: "isActive") var isactive: Bool? + + @Timestamp(key: "createDate", on: .create) var createdate: Date? + @Field(key: "createUserId") var createuserid: Int? + @Timestamp(key: "updateDate", on: .update) var updatedate: Date? + @Field(key: "updateUserId") var updateuserid: Int? + + init() { } + + init(id: Int? = nil, + name: String? = nil, + description: String? = nil, + sortorder: Int? = nil, + isactive: Bool? = nil, + createuserid: Int? = nil, + updateuserid: Int? = nil + ) { + self.id = id + self.name = name + self.description = description + self.sortorder = sortorder + self.isactive = isactive + self.createuserid = createuserid + self.updateuserid = updateuserid + } +} +extension mdlWorkOrderFlow{ + struct Create: AsyncMigration { + func prepare(on database: Database) async throws { + try await database.schema("workOrderFlow") + .field("id", .int, .identifier(auto: true)) + .field("name", .string) + .field("description", .string) + .field("sortOrder", .int) + .field("isActive", .bool) + .field("createDate", .datetime) + .field("createUserId", .int) + .field("updateDate", .datetime) + .field("updateUserId", .int) + .create() + } + + func revert(on database: Database) async throws { + try await database.schema("workOrderFlow").delete() + } + } +} + diff --git a/Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift b/Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift index 34171e2..f24df34 100644 --- a/Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift +++ b/Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift @@ -21,6 +21,7 @@ final class mdlWorkOrderSegment: Model, Content { @Children(for: \.$segment) var parts: [mdlWorkOrderPart] @Children(for: \.$segment) var inspections: [mdlInspection] + @Children(for: \.$segment) var samples: [mdlOilSample] @Timestamp(key: "createDate", on: .create) var createdate: Date? @Field(key: "createUserId") var createuserid: Int? diff --git a/Sources/App/configure.swift b/Sources/App/configure.swift index 799b609..1c9d0be 100644 --- a/Sources/App/configure.swift +++ b/Sources/App/configure.swift @@ -104,6 +104,40 @@ public func configure(_ app: Application) async throws { app.migrations.add(mdlXFluidViscosity.Mod1()) app.migrations.add(mdlContact.Mod1()) app.migrations.add(mdlResponseType.Mod1()) + app.migrations.add(mdlLabSetting.Mod1()) + app.migrations.add(mdlLabSetting.Mod2()) + app.migrations.add(mdlLocation.Mod1()) + app.migrations.add(mdlWorkOrderAttachment.Create()) + app.migrations.add(mdlWorkOrderFlow.Create()) + app.migrations.add(mdlWorkOrder.Mod1()) + app.migrations.add(mdlWorkOrderPart.Create()) + app.migrations.add(mdlWorkOrderPart.Mod1()) + app.migrations.add(mdlSignatureType.Mod1()) + app.migrations.add(mdlSignature.Create()) + app.migrations.add(mdlInspectionType.Create()) + app.migrations.add(mdlInspectionLevel.Create()) + app.migrations.add(mdlWorkOrderSegment.Create()) + app.migrations.add(mdlWorkOrderPart.Mod2()) + app.migrations.add(mdlXWorkOrderSegment.Delete()) + app.migrations.add(mdlInspection.Create()) + app.migrations.add(mdlInspectionCategory.Create()) + app.migrations.add(mdlInspectionItem.Create()) + app.migrations.add(mdlInspectionItemResponse.Create()) + app.migrations.add(mdlInspectionItem.Mod1()) + app.migrations.add(mdlInspectionItem.Mod2()) + app.migrations.add(mdlInspectionItemSpec.Create()) + app.migrations.add(mdlInspectionItemSpecItem.Create()) + app.migrations.add(mdlInspectionItemSpecItemTest.Create()) + app.migrations.add(mdlInspectionItemSpecItemValue.Create()) + app.migrations.add(mdlNote.Create()) + app.migrations.add(mdlNote.Mod1()) + app.migrations.add(mdlOilSample.Mod2()) + app.migrations.add(mdlConsumption.Create()) + app.migrations.add(mdlConsumption.Mod1()) + app.migrations.add(mdlTemplate.Create()) + app.migrations.add(mdlTemplate.Mod1()) + app.migrations.add(mdlTemplateCategory.Create()) + app.migrations.add(mdlTemplateItemSpec.Create()) app.logger.logLevel = .debug diff --git a/Sources/App/routes.swift b/Sources/App/routes.swift index 31d73e7..09b09a5 100644 --- a/Sources/App/routes.swift +++ b/Sources/App/routes.swift @@ -61,13 +61,30 @@ func routes(_ app: Application) throws { try baseApp.register(collection: cntrlLabSetting()) try baseApp.register(collection: cntrlXFluidViscosity()) try baseApp.register(collection: cntrlXUserRole()) - try baseApp.register(collection: cntrlXWorkOrderSegment()) + //try baseApp.register(collection: cntrlXWorkOrderSegment()) try baseApp.register(collection: cntrlOilSample()) try baseApp.register(collection: cntrlSpec()) try baseApp.register(collection: cntrlSpecItem()) try baseApp.register(collection: cntrlSpecItemValue()) try baseApp.register(collection: cntrlWorkOrder()) - - - + try baseApp.register(collection: cntrlWorkorderFlow()) + try baseApp.register(collection: cntrlSignature()) + try baseApp.register(collection: cntrlWorkOrderPart()) + try baseApp.register(collection: cntrlWorkOrderAttachment()) + try baseApp.register(collection: cntrlInspectionType()) + try baseApp.register(collection: cntrlInspectionLevel()) + try baseApp.register(collection: cntrlWorkOrderSegment()) + try baseApp.register(collection: cntrlInspection()) + try baseApp.register(collection: cntrlInspectionCategory()) + try baseApp.register(collection: cntrlInspectionItem()) + try baseApp.register(collection: cntrlInspectionItemResponse()) + try baseApp.register(collection: cntrlInspectionItemSpec()) + try baseApp.register(collection: cntrlInspectionItemSpecItem()) + try baseApp.register(collection: cntrlInspectionItemSpecItemTest()) + try baseApp.register(collection: cntrlInspectionItemSpecItemValue()) + try baseApp.register(collection: cntrlNote()) + try baseApp.register(collection: cntrlConsumption()) + try baseApp.register(collection: cntrlTemplate()) + try baseApp.register(collection: cntrlTemplateCategory()) + try baseApp.register(collection: cntrlTemplateItemSpec()) }