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.
 
 

148 regels
4.8 KiB

  1. //
  2. // File.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 10/29/21.
  6. //
  7. import Foundation
  8. import Vapor
  9. import Fluent
  10. import FluentPostgresDriver
  11. final class mdlFile: Model, Content{
  12. struct Input: Content{
  13. let id: Int?
  14. let name: String
  15. let filepath: String
  16. let filedata: String
  17. let filetype: String
  18. let fileextension: String
  19. let createdate: Date?
  20. let createuserid: Int?
  21. let updatedate: Date?
  22. let updateuserid: Int?
  23. let workorder: mdlWorkOrder
  24. let inspectioncategoryitem: mdlInspectionCategoryItem
  25. let contact: mdlContact
  26. }
  27. struct Output: Content{
  28. let id: Int?
  29. let name: String
  30. let filepath: String
  31. let filedata: String
  32. let filetype: String
  33. let fileextension: String
  34. let createdate: Date?
  35. let createuserid: Int?
  36. let updatedate: Date?
  37. let updateuserid: Int?
  38. let workorder: mdlWorkOrder
  39. let inspectioncategoryitem: mdlInspectionCategoryItem
  40. let contact: mdlContact
  41. }
  42. static let schema = "File"
  43. @ID(custom: "id", generatedBy: .database) var id: Int?
  44. @Field(key: "name") var name: String
  45. @Field(key: "filePath") var filepath: String
  46. @Field(key: "fileType") var filetype: String
  47. @Field(key: "fileExtension") var fileextension: String
  48. @Field(key: "createUserId" ) var createuserid: Int?
  49. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  50. @Field(key: "updateUserId") var updateuserid: Int?
  51. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  52. @Parent(key: "workOrderId") var workorder: mdlWorkOrder
  53. @Parent(key: "inspectionCategoryItemId") var inspectioncategoryitem: mdlInspectionCategoryItem
  54. @Parent(key: "contactId") var contact: mdlContact
  55. init(){}
  56. init(id: Int? = nil
  57. , name: String
  58. , filepath: String
  59. , filedata: String
  60. , filetype: String
  61. , fileextension: String
  62. , createuserid: Int? = -1
  63. , createdate: Date? = nil
  64. , updateuserid: Int? = -1
  65. , updatedate: Date? = nil
  66. , workorder: mdlWorkOrder
  67. , inspectioncategoryitem: mdlInspectionCategoryItem
  68. , contact: mdlContact
  69. ){
  70. self.id = id
  71. self.name = name
  72. self.filepath = filepath
  73. self.filetype = filetype
  74. self.fileextension = fileextension
  75. self.createuserid = createuserid
  76. self.createdate = createdate
  77. self.updateuserid = updateuserid
  78. self.updatedate = updatedate
  79. self.$workorder.id = workorder.id!
  80. self.$inspectioncategoryitem.id = inspectioncategoryitem.id!
  81. self.$contact.id = contact.id!
  82. }
  83. }
  84. extension mdlFile {
  85. struct create: Migration{
  86. func prepare(on database: Database) -> EventLoopFuture<Void> {
  87. return database.schema("File")
  88. .field("id", .int, .identifier(auto: true))
  89. .field("workOrderId", .int, .references("WorkOrder", "id"))
  90. .field("inspectionCateglryItemId", .int, .references("InspectionCategoryItem", "id"))
  91. .field("contactId", .int, .references("Contact", "id"))
  92. .field("name", .string)
  93. .field("filePath", .string)
  94. .field("fileType", .string)
  95. .field("fileExtension", .string)
  96. .field("createUserId", .int)
  97. .field("createDate", .datetime)
  98. .field("updateUserId", .int)
  99. .field("updateDate", .datetime)
  100. .create()
  101. }
  102. func revert(on database: Database) -> EventLoopFuture<Void> {
  103. database.schema("File").delete()
  104. }
  105. }
  106. struct update001: Migration{
  107. func prepare(on database: Database) -> EventLoopFuture<Void> {
  108. return database.schema("File")
  109. .field("inspectionCategoryItemId", .int, .references("InspectionCategoryItem", "id"))
  110. .deleteField("inspectionCateglryItemId")
  111. .update()
  112. }
  113. func revert(on database: Database) -> EventLoopFuture<Void> {
  114. database.schema("File")
  115. .field("inspectionCateglryItemId", .int, .references("InspectionCategoryItem", "id"))
  116. .deleteField("inspectionCategoryItemId")
  117. .update()
  118. }
  119. }
  120. /* Uncomment if you need to seed the table.
  121. struct seed: Migration {
  122. func prepare(on database: Database) -> EventLoopFuture<Void> {
  123. // 1
  124. let array: [<#Model#>] = [
  125. <#init#>
  126. ]
  127. // 2
  128. return array.map { obj in
  129. obj.save(on: database)
  130. }
  131. .flatten(on: database.eventLoop)
  132. }
  133. func revert(on database: Database) -> EventLoopFuture<Void> {
  134. // 3
  135. <#Model#>.query(on: database).delete()
  136. }
  137. }
  138. */
  139. }