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.
 
 

126 rivejä
3.8 KiB

  1. //
  2. // ContactMethod.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 10/25/21.
  6. //
  7. import Foundation
  8. import Vapor
  9. import Fluent
  10. import FluentPostgresDriver
  11. final class mdlContactMethod: Model, Content{
  12. struct Input: Content{
  13. let id: Int?
  14. let name: String
  15. let description: String
  16. let line1: String
  17. let line2: String
  18. let line3: String
  19. let line4: String
  20. let primary: Bool
  21. let createdate: Date?
  22. let createuserid: Int?
  23. let updatedate: Date?
  24. let updateuserid: Int?
  25. let contact: mdlContact
  26. }
  27. struct Output: Content{
  28. let id: Int?
  29. let name: String
  30. let description: String
  31. let line1: String
  32. let line2: String
  33. let line3: String
  34. let line4: String
  35. let primary: Bool
  36. let createdate: Date?
  37. let createuserid: Int?
  38. let updatedate: Date?
  39. let updateuserid: Int?
  40. let contact: mdlContact
  41. }
  42. static let schema = "ContactMethod"
  43. @ID(custom: "id", generatedBy: .database) var id: Int?
  44. @Field(key: "name") var name: String
  45. @Field(key: "description") var description: String
  46. @Field(key: "line1") var line1: String
  47. @Field(key: "line2") var line2: String
  48. @Field(key: "line3") var line3: String
  49. @Field(key: "line4") var line4: String
  50. @Field(key: "primary") var primary: Bool
  51. @Field(key: "createUserId" ) var createuserid: Int?
  52. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  53. @Field(key: "updateUserId") var updateuserid: Int?
  54. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  55. @Parent(key: "contactId") var contact: mdlContact
  56. init(){}
  57. init(id: Int? = nil, name: String, description: String, line1: String, line2: String, line3: String, line4: String, primary: Bool = false, createuserid: Int? = -1, createdate: Date? = nil, updateuserid: Int? = -1, updatedate: Date? = nil, contact: mdlContact){
  58. self.id = id
  59. self.name = name
  60. self.description = description
  61. self.line1 = line1
  62. self.line2 = line2
  63. self.line3 = line3
  64. self.line4 = line4
  65. self.primary = primary
  66. self.createuserid = createuserid
  67. self.createdate = createdate
  68. self.updateuserid = updateuserid
  69. self.updatedate = updatedate
  70. self.$contact.id = contact.id!
  71. }
  72. }
  73. extension mdlContactMethod {
  74. struct create: Migration{
  75. func prepare(on database: Database) -> EventLoopFuture<Void> {
  76. return database.schema("ContactMethod")
  77. .field("id", .int, .identifier(auto: true))
  78. .field("primary", .bool)
  79. .field("name", .string)
  80. .field("description", .string)
  81. .field("line1", .string)
  82. .field("line2", .string)
  83. .field("line3", .string)
  84. .field("line4", .string)
  85. .field("contactId", .int)
  86. .field("createUserId", .int)
  87. .field("createDate", .datetime)
  88. .field("updateUserId", .int)
  89. .field("updateDate", .datetime)
  90. .create()
  91. }
  92. func revert(on database: Database) -> EventLoopFuture<Void> {
  93. database.schema("ContactMethod").delete()
  94. }
  95. }
  96. /*
  97. struct seed: Migration {
  98. func prepare(on database: Database) -> EventLoopFuture<Void> {
  99. // 1
  100. let array: [<#Model#>] = [
  101. <#init#>
  102. ]
  103. // 2
  104. return array.map { obj in
  105. obj.save(on: database)
  106. }
  107. .flatten(on: database.eventLoop)
  108. }
  109. func revert(on database: Database) -> EventLoopFuture<Void> {
  110. // 3
  111. <#Model#>.query(on: database).delete()
  112. }
  113. }
  114. */
  115. }