No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

121 líneas
3.8 KiB

  1. //
  2. // SpecItem.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 10/27/21.
  6. //
  7. import Foundation
  8. import Vapor
  9. import Fluent
  10. import FluentPostgresDriver
  11. final class mdlSpecItem: Model, Content{
  12. struct Input: Content{
  13. let id: Int?
  14. let name: String
  15. let qualifier: String
  16. let sortorder: Int
  17. let createdate: Date?
  18. let createuserid: Int?
  19. let updatedate: Date?
  20. let updateuserid: Int?
  21. let spec: mdlSpec
  22. let comparisontype: mdlComparisonType
  23. let unit: mdlUnit
  24. let specitemvalues: [mdlSpecItemValue]
  25. }
  26. struct Output: Content{
  27. let id: Int?
  28. let name: String
  29. let qualifier: String
  30. let sortorder: Int
  31. let createdate: Date?
  32. let createuserid: Int?
  33. let updatedate: Date?
  34. let updateuserid: Int?
  35. let spec: mdlSpec
  36. let comparisontype: mdlComparisonType
  37. let unit: mdlUnit
  38. let specitemvalues: [mdlSpecItemValue]
  39. }
  40. static let schema = "SpecItem"
  41. @ID(custom: "id", generatedBy: .database) var id: Int?
  42. @Field(key: "name") var name: String
  43. @Field(key: "qualifier") var qualifier: String
  44. @Field(key: "sortOrder") var sortorder: Int
  45. @Field(key: "createUserId" ) var createuserid: Int?
  46. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  47. @Field(key: "updateUserId") var updateuserid: Int?
  48. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  49. @Parent(key: "specId") var spec: mdlSpec
  50. @Parent(key: "comparisonTypeId") var comparisontype: mdlComparisonType
  51. @Parent(key: "unitId") var unit: mdlUnit
  52. @Children(for: \.$specitem) var specitemvalues: [mdlSpecItemValue]
  53. init(){}
  54. init(id: Int? = nil, name: String, qualifier: String, sortorder: Int, createuserid: Int? = -1, createdate: Date? = nil, updateuserid: Int? = -1, updatedate: Date? = nil, spec: mdlSpec, comparisontype: mdlComparisonType, unit: mdlUnit){
  55. self.id = id
  56. self.name = name
  57. self.qualifier = qualifier
  58. self.sortorder = sortorder
  59. self.createuserid = createuserid
  60. self.createdate = createdate
  61. self.updateuserid = updateuserid
  62. self.updatedate = updatedate
  63. self.$spec.id = spec.id!
  64. self.$comparisontype.id = comparisontype.id!
  65. self.$unit.id = unit.id!
  66. //self.$specitemvalues.value = specitemvalues
  67. }
  68. }
  69. extension mdlSpecItem {
  70. struct create: Migration{
  71. func prepare(on database: Database) -> EventLoopFuture<Void> {
  72. return database.schema("SpecItem")
  73. .field("id", .int, .identifier(auto: true))
  74. .field("name", .string)
  75. .field("qualifier", .string)
  76. .field("sortOrder", .int)
  77. .field("specId", .int, .required, .references("Spec", "id"))
  78. .field("comparisonTypeId", .int, .required, .references("ComparisonType", "id"))
  79. .field("unitId", .int, .required, .references("Unit", "id"))
  80. .field("createUserId", .int)
  81. .field("createDate", .datetime)
  82. .field("updateUserId", .int)
  83. .field("updateDate", .datetime)
  84. .create()
  85. }
  86. func revert(on database: Database) -> EventLoopFuture<Void> {
  87. database.schema("SpecItem").delete()
  88. }
  89. }
  90. /* Uncomment if you need to seed the table.
  91. struct seed: Migration {
  92. func prepare(on database: Database) -> EventLoopFuture<Void> {
  93. // 1
  94. let array: [<#Model#>] = [
  95. <#init#>
  96. ]
  97. // 2
  98. return array.map { obj in
  99. obj.save(on: database)
  100. }
  101. .flatten(on: database.eventLoop)
  102. }
  103. func revert(on database: Database) -> EventLoopFuture<Void> {
  104. // 3
  105. <#Model#>.query(on: database).delete()
  106. }
  107. }
  108. */
  109. }