You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
4.8 KiB

  1. //
  2. // OilSampleLabel.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 10/28/21.
  6. //
  7. import Foundation
  8. import Vapor
  9. import Fluent
  10. import FluentPostgresDriver
  11. final class mdlOilSampleLabel: Model, Content{
  12. static let schema = "OilSampleLabel"
  13. @ID(custom: "id", generatedBy: .database) var id: Int?
  14. @Field(key: "name") var name: String
  15. @Field(key: "description") var description: String
  16. @Field(key: "size") var size: String
  17. @Field(key: "offset") var offset: String
  18. @Field(key: "hrez") var hrez: String
  19. @Field(key: "vrez") var vrez: String
  20. @Field(key: "height") var height: String
  21. @Field(key: "quantity") var quantity: Int
  22. @Field(key: "createUserId" ) var createuserid: Int?
  23. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  24. @Field(key: "updateUserId") var updateuserid: Int?
  25. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  26. @Parent(key: "labSettingId") var labsetting: mdlLabSetting
  27. init(){}
  28. init(id: Int?)
  29. {
  30. self.id = id
  31. }
  32. init(
  33. name: String
  34. ,description: String
  35. ,size: String
  36. ,offset: String
  37. ,hrez: String
  38. ,vrez: String
  39. ,height: String
  40. ,quantity: Int
  41. ){
  42. self.name = name
  43. self.description = description
  44. self.size = size
  45. self.offset = offset
  46. self.hrez = hrez
  47. self.vrez = vrez
  48. self.height = height
  49. self.quantity = quantity
  50. self.$labsetting.id = mdlLabSetting(id: -1).id!
  51. self.createuserid = -1
  52. self.updateuserid = -1
  53. }
  54. init(
  55. id: Int?
  56. ,name: String
  57. ,description: String
  58. ,size: String
  59. ,offset: String
  60. ,hrez: String
  61. ,vrez: String
  62. ,height: String
  63. ,quantity: Int
  64. ,createdate: Date?
  65. ,createuserid: Int?
  66. ,updatedate: Date?
  67. ,updateuserid: Int?
  68. ,labsetting: mdlLabSetting
  69. ){
  70. self.id = id
  71. self.name = name
  72. self.description = description
  73. self.size = size
  74. self.offset = offset
  75. self.hrez = hrez
  76. self.vrez = vrez
  77. self.height = height
  78. self.quantity = quantity
  79. self.createuserid = createuserid
  80. self.createdate = createdate
  81. self.updateuserid = updateuserid
  82. self.updatedate = updatedate
  83. self.$labsetting.id = labsetting.id!
  84. }
  85. }
  86. extension mdlOilSampleLabel {
  87. struct Input: Content{
  88. let id: Int?
  89. let name: String
  90. let description: String
  91. let size: String
  92. let offset: String
  93. let hrez: String
  94. let vrez: String
  95. let height: String
  96. let quantity: Int
  97. let createdate: Date?
  98. let createuserid: Int?
  99. let updatedate: Date?
  100. let updateuserid: Int?
  101. let labsetting: mdlLabSetting
  102. }
  103. struct Output: Content{
  104. let id: Int?
  105. let name: String
  106. let description: String
  107. let size: String
  108. let offset: String
  109. let hrez: String
  110. let vrez: String
  111. let height: String
  112. let quantity: Int
  113. let createdate: Date?
  114. let createuserid: Int?
  115. let updatedate: Date?
  116. let updateuserid: Int?
  117. let labsetting: mdlLabSetting
  118. }
  119. struct create: Migration{
  120. func prepare(on database: Database) -> EventLoopFuture<Void> {
  121. return database.schema("OilSampleLabel")
  122. .field("id", .int, .identifier(auto: true))
  123. .field("name", .string)
  124. .field("description", .string)
  125. .field("size", .string)
  126. .field("offset", .string)
  127. .field("hrez", .string)
  128. .field("vrez", .string)
  129. .field("height", .string)
  130. .field("quantity", .int)
  131. .field("labSettingId", .int, .required, .references("LabSetting", "id"))
  132. .field("createUserId", .int)
  133. .field("createDate", .datetime)
  134. .field("updateUserId", .int)
  135. .field("updateDate", .datetime)
  136. .create()
  137. }
  138. func revert(on database: Database) -> EventLoopFuture<Void> {
  139. database.schema("OilSampleItem").delete()
  140. }
  141. }
  142. // Uncomment if you need to seed the table.
  143. struct seed: Migration {
  144. func prepare(on database: Database) -> EventLoopFuture<Void> {
  145. // 1
  146. let array: [mdlOilSampleLabel] = [
  147. .init(name: "Label 1", description: "", size: "2X4", offset: "0", hrez: "200", vrez: "200", height: "600", quantity: 1)
  148. ]
  149. // 2
  150. return array.map { obj in
  151. obj.save(on: database)
  152. }
  153. .flatten(on: database.eventLoop)
  154. }
  155. func revert(on database: Database) -> EventLoopFuture<Void> {
  156. // 3
  157. mdlOilSampleLabel.query(on: database).delete()
  158. }
  159. }
  160. //
  161. }