Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

107 righe
3.2 KiB

  1. //
  2. // mdlLocation.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 1/24/24.
  6. //
  7. import Fluent
  8. import Vapor
  9. import Foundation
  10. import FluentKit
  11. final class mdlLocation: Model, Content {
  12. static let schema = "location"
  13. @ID(custom: "id", generatedBy: .database) var id: Int?
  14. @Field(key: "name") var name: String?
  15. @Field(key: "address") var address: String?
  16. @Field(key: "address2") var address2: String?
  17. @Field(key: "city") var city: String?
  18. @Field(key: "postalCode") var postalcode: String?
  19. @Field(key: "dealerCode") var dealercode: String?
  20. @Field(key: "fileLocation") var filelocation: String?
  21. @Field(key: "isActive") var isactive: Bool?
  22. @Parent(key: "stateId") var state: mdlState
  23. @OptionalParent(key: "unitId") var unit: mdlUnit?
  24. @OptionalParent(key: "labSettingId") var labsetting: mdlLabSetting?
  25. @Children(for: \.$location) var users: [mdlUser]
  26. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  27. @Field(key: "createUserId") var createuserid: Int?
  28. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  29. @Field(key: "updateUserId") var updateuserid: Int?
  30. init() { }
  31. init(id: Int? = nil,
  32. name: String? = nil,
  33. address: String? = nil,
  34. address2: String? = nil,
  35. city: String? = nil,
  36. postalcode: String? = nil,
  37. dealercode: String? = nil,
  38. filelocation: String? = nil,
  39. isactive: Bool? = nil,
  40. createuserid: Int? = nil,
  41. updateuserid: Int? = nil,
  42. stateid: Int? = nil,
  43. unitid: Int? = nil,
  44. labsettingid: Int? = nil
  45. ) {
  46. self.id = id
  47. self.name = name
  48. self.address = address
  49. self.address2 = address2
  50. self.city = city
  51. self.postalcode = postalcode
  52. self.dealercode = dealercode
  53. self.filelocation = filelocation
  54. self.isactive = isactive
  55. self.createuserid = createuserid
  56. self.updateuserid = updateuserid
  57. self.$state.$id.value = stateid!
  58. self.$unit.$id.value = unitid!
  59. self.$labsetting.$id.value = labsettingid!
  60. }
  61. }
  62. extension mdlLocation{
  63. struct Create: AsyncMigration {
  64. func prepare(on database: Database) async throws {
  65. try await database.schema("location")
  66. .field("id", .int, .identifier(auto: true))
  67. .field("name", .string)
  68. .field("address", .string)
  69. .field("address2", .string)
  70. .field("city", .string)
  71. .field("postalCode", .string)
  72. .field("dealerCode", .string)
  73. .field("fileLocation", .string)
  74. .field("isActive", .bool)
  75. .field("createDate", .datetime)
  76. .field("createUserId", .int)
  77. .field("updateDate", .datetime)
  78. .field("updateUserId", .int)
  79. .field("stateId", .int)
  80. .field("unitId", .int)
  81. .field("labSettingId", .int)
  82. .create()
  83. }
  84. func revert(on database: Database) async throws {
  85. try await database.schema("location").delete()
  86. }
  87. }
  88. }