Bladeren bron

All Tables and Controllers created

main
rpm-mcarman 2 jaren geleden
bovenliggende
commit
97c6ef0f17
59 gewijzigde bestanden met toevoegingen van 2306 en 141 verwijderingen
  1. +3
    -0
      Sources/App/Controllers/AuthControllers/cntrlUser.swift
  2. +45
    -4
      Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift
  3. +45
    -4
      Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift
  4. +45
    -4
      Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift
  5. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift
  6. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift
  7. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift
  8. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift
  9. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift
  10. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift
  11. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift
  12. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift
  13. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift
  14. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift
  15. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift
  16. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift
  17. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift
  18. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift
  19. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift
  20. +45
    -4
      Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift
  21. +0
    -2
      Sources/App/Models/AuthTables/mdlSegment.swift
  22. +1
    -0
      Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift
  23. +3
    -0
      Sources/App/Models/BaseTables/mdlCategory.swift
  24. +2
    -0
      Sources/App/Models/BaseTables/mdlInputType.swift
  25. +16
    -4
      Sources/App/Models/BaseTables/mdlLocation.swift
  26. +2
    -0
      Sources/App/Models/BaseTables/mdlNoteType.swift
  27. +16
    -1
      Sources/App/Models/BaseTables/mdlSignatureType.swift
  28. +1
    -0
      Sources/App/Models/CustomerTables/mdlCustomer.swift
  29. +2
    -0
      Sources/App/Models/CustomerTables/mdlEquipment.swift
  30. +1
    -0
      Sources/App/Models/CustomerTables/mdlMake.swift
  31. +2
    -0
      Sources/App/Models/CustomerTables/mdlModel.swift
  32. +1
    -0
      Sources/App/Models/CustomerTables/mdlProduct.swift
  33. +2
    -0
      Sources/App/Models/ItemTables/mdlItem.swift
  34. +31
    -1
      Sources/App/Models/LabTables/mdlLabSetting.swift
  35. +18
    -0
      Sources/App/Models/LinkingTables/XWorkOrderSegment.swift
  36. +1
    -0
      Sources/App/Models/SpecTables/mdlSpec.swift
  37. +102
    -3
      Sources/App/Models/TemplateTables/mdlTemplate.swift
  38. +63
    -3
      Sources/App/Models/TemplateTables/mdlTemplateCategory.swift
  39. +65
    -3
      Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift
  40. +88
    -3
      Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift
  41. +68
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift
  42. +2
    -0
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift
  43. +109
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift
  44. +69
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift
  45. +61
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift
  46. +82
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift
  47. +59
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift
  48. +59
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift
  49. +66
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift
  50. +64
    -3
      Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift
  51. +88
    -3
      Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift
  52. +99
    -3
      Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift
  53. +1
    -1
      Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift
  54. +64
    -3
      Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift
  55. +20
    -1
      Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift
  56. +64
    -3
      Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift
  57. +1
    -0
      Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift
  58. +34
    -0
      Sources/App/configure.swift
  59. +21
    -4
      Sources/App/routes.swift

+ 3
- 0
Sources/App/Controllers/AuthControllers/cntrlUser.swift Bestand weergeven

@@ -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
}


+ 45
- 4
Sources/App/Controllers/TemplateControllers/cntrlTemplate.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/TemplateControllers/cntrlTemplateCategory.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/TemplateControllers/cntrlTemplateItemSpec.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Consumptions/cntrlConsumption.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspection.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionCategory.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItem.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemResponse.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpec.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItem.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemTest.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionItemSpecItemValue.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionLevel.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Inspections/cntrlInspectionType.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Notes/cntrlNote.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/Parts/cntrlWorkOrderPart.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/SignatureControllers/cntrlSignature.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderFlow.swift Bestand weergeven

@@ -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
}
}

+ 45
- 4
Sources/App/Controllers/WorkOrderControllers/cntrlWorkOrderSegment.swift Bestand weergeven

@@ -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
}
}

+ 0
- 2
Sources/App/Models/AuthTables/mdlSegment.swift Bestand weergeven

@@ -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?


+ 1
- 0
Sources/App/Models/BaseTables/ChildTables/mdlResponseType.swift Bestand weergeven

@@ -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?


+ 3
- 0
Sources/App/Models/BaseTables/mdlCategory.swift Bestand weergeven

@@ -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?


+ 2
- 0
Sources/App/Models/BaseTables/mdlInputType.swift Bestand weergeven

@@ -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?


+ 16
- 4
Sources/App/Models/BaseTables/mdlLocation.swift Bestand weergeven

@@ -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()
}
}
}




+ 2
- 0
Sources/App/Models/BaseTables/mdlNoteType.swift Bestand weergeven

@@ -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?


+ 16
- 1
Sources/App/Models/BaseTables/mdlSignatureType.swift Bestand weergeven

@@ -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()
}
}
}




+ 1
- 0
Sources/App/Models/CustomerTables/mdlCustomer.swift Bestand weergeven

@@ -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?


+ 2
- 0
Sources/App/Models/CustomerTables/mdlEquipment.swift Bestand weergeven

@@ -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?


+ 1
- 0
Sources/App/Models/CustomerTables/mdlMake.swift Bestand weergeven

@@ -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?


+ 2
- 0
Sources/App/Models/CustomerTables/mdlModel.swift Bestand weergeven

@@ -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?


+ 1
- 0
Sources/App/Models/CustomerTables/mdlProduct.swift Bestand weergeven

@@ -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?


+ 2
- 0
Sources/App/Models/ItemTables/mdlItem.swift Bestand weergeven

@@ -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?


+ 31
- 1
Sources/App/Models/LabTables/mdlLabSetting.swift Bestand weergeven

@@ -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()
}
}
}




+ 18
- 0
Sources/App/Models/LinkingTables/XWorkOrderSegment.swift Bestand weergeven

@@ -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()
}
}
}



+ 1
- 0
Sources/App/Models/SpecTables/mdlSpec.swift Bestand weergeven

@@ -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?


+ 102
- 3
Sources/App/Models/TemplateTables/mdlTemplate.swift Bestand weergeven

@@ -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()
}
}
}


+ 63
- 3
Sources/App/Models/TemplateTables/mdlTemplateCategory.swift Bestand weergeven

@@ -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()
}
}
}


+ 65
- 3
Sources/App/Models/TemplateTables/mdlTemplateItemSpec.swift Bestand weergeven

@@ -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()
}
}
}


+ 88
- 3
Sources/App/Models/WorkOrderTables/Consumptions/mdlConsumption.swift Bestand weergeven

@@ -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()
}
}
}


+ 68
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspection.swift Bestand weergeven

@@ -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()
}
}
}


+ 2
- 0
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionCategory.swift Bestand weergeven

@@ -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?


+ 109
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItem.swift Bestand weergeven

@@ -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()
}
}
}


+ 69
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemResponse.swift Bestand weergeven

@@ -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()
}
}
}


+ 61
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpec.swift Bestand weergeven

@@ -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()
}
}
}


+ 82
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItem.swift Bestand weergeven

@@ -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()
}
}
}


+ 59
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemTest.swift Bestand weergeven

@@ -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()
}
}
}


+ 59
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionItemSpecItemValue.swift Bestand weergeven

@@ -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()
}
}
}


+ 66
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionLevel.swift Bestand weergeven

@@ -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()
}
}
}


+ 64
- 3
Sources/App/Models/WorkOrderTables/Inspections/mdlInspectionType.swift Bestand weergeven

@@ -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()
}
}
}


+ 88
- 3
Sources/App/Models/WorkOrderTables/Notes/mdlNote.swift Bestand weergeven

@@ -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()
}
}
}


+ 99
- 3
Sources/App/Models/WorkOrderTables/Parts/mdlWorkOrderPart.swift Bestand weergeven

@@ -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()
}
}
}


+ 1
- 1
Sources/App/Models/WorkOrderTables/Samples/mdlOilSample.swift Bestand weergeven

@@ -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")


+ 64
- 3
Sources/App/Models/WorkOrderTables/Signatures/mdlSignature.swift Bestand weergeven

@@ -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()
}
}
}


+ 20
- 1
Sources/App/Models/WorkOrderTables/mdlWorkOrder.swift Bestand weergeven

@@ -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()
}
}
}




+ 64
- 3
Sources/App/Models/WorkOrderTables/mdlWorkOrderFlow.swift Bestand weergeven

@@ -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()
}
}
}


+ 1
- 0
Sources/App/Models/WorkOrderTables/mdlWorkOrderSegment.swift Bestand weergeven

@@ -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?


+ 34
- 0
Sources/App/configure.swift Bestand weergeven

@@ -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


+ 21
- 4
Sources/App/routes.swift Bestand weergeven

@@ -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())
}

Laden…
Annuleren
Opslaan