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.

mdlSysUOM.swift 4.9 KiB

2 年之前
2 年之前
2 年之前
2 年之前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. //
  2. // mdlSysUOM.swift
  3. //
  4. //
  5. // Created by Michiel Carman on 2/16/24.
  6. //
  7. import Fluent
  8. import Vapor
  9. import Foundation
  10. import FluentKit
  11. final class mdlSysUOM: Model, Content {
  12. static let schema = "sysUOM"
  13. @ID(custom: "id", generatedBy: .database) var id: Int?
  14. @Field(key: "name") var name: String?
  15. @Field(key: "description") var description: String?
  16. @Parent(key: "sysOfMeasureId") var sys: mdlSysOfMeasure
  17. @Parent(key: "sysCategoryId") var syscat: mdlSysCategory
  18. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  19. @Field(key: "createUserId") var createuserid: Int?
  20. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  21. @Field(key: "updateUserId") var updateuserid: Int?
  22. init() { }
  23. init(id: Int? = nil,
  24. name: String? = nil,
  25. description: String? = nil,
  26. sysid: Int,
  27. syscatid: Int,
  28. createuserid: Int? = nil,
  29. updateuserid: Int? = nil
  30. ) {
  31. self.id = id
  32. self.name = name
  33. self.description = description
  34. self.$sys.$id.value = sysid
  35. self.$syscat.$id.value = syscatid
  36. self.createuserid = createuserid
  37. self.updateuserid = updateuserid
  38. }
  39. }
  40. extension mdlSysUOM{
  41. struct Create: AsyncMigration {
  42. func prepare(on database: Database) async throws {
  43. try await database.schema("sysUOM")
  44. .field("id", .int, .identifier(auto: true))
  45. .field("name", .string)
  46. .field("description", .string)
  47. .field("sysOfMeasureId", .int, .references("sysOfMeasure", "id"))
  48. .field("sysCategoryId", .int, .references("sysCategory", "id"))
  49. .field("createDate", .datetime)
  50. .field("createUserId", .int)
  51. .field("updateDate", .datetime)
  52. .field("updateUserId", .int)
  53. .create()
  54. }
  55. func revert(on database: Database) async throws {
  56. try await database.schema("sysUOM").delete()
  57. }
  58. }
  59. struct Seed: AsyncMigration{
  60. func prepare(on database: FluentKit.Database) async throws {
  61. let sys = try await mdlSysOfMeasure.query(on: database).all()
  62. let u = try await mdlSysCategory.query(on: database).all()
  63. var mdls: [mdlSysUOM] = []
  64. for s in sys{
  65. _ = s.id!
  66. for c in u{
  67. _ = c.id!
  68. if(c.name == "LENGTH"){
  69. if(s.id == 1){
  70. mdls.append(
  71. .init(id: nil, name: "M", description: "Meter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
  72. )
  73. )
  74. mdls.append(
  75. .init(id: nil, name: "cm", description: "centiMeter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
  76. )
  77. )
  78. mdls.append(
  79. .init(id: nil, name: "mm", description: "Milimeter", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
  80. )
  81. )
  82. mdls.append(
  83. .init(id: nil, name: "nm", description: "Nanometer", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
  84. )
  85. )
  86. mdls.append(
  87. .init(id: nil, name: "KM", description: "Kilometer", sysid: s.id!, syscatid: c.id!, createuserid: -1, updateuserid: -1
  88. )
  89. )
  90. }
  91. }
  92. if(c.name == "WEIGHT"){
  93. }
  94. if(c.name == "CAPACITY"){
  95. }
  96. if(c.name == "VOLUME"){
  97. }
  98. if(c.name == "AREA"){
  99. }
  100. if(c.name == "TEMPERATURE"){
  101. }
  102. }
  103. }
  104. // let mdls: [mdlSysUOM] = [
  105. // .init(id: 1,
  106. // name: "Built motor",
  107. // description: "d",
  108. // createuserid: -1,
  109. // updateuserid: -1)
  110. // ]
  111. for mdl in mdls{
  112. try await mdl.save(on: database)
  113. }
  114. }
  115. func revert(on database: Database) async throws {
  116. try await mdlSysUOM.query(on: database).delete()
  117. }
  118. }
  119. }