Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 

106 Zeilen
3.3 KiB

  1. //
  2. // mdlSysUnit.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 mdlSysCategory: Model, Content {
  12. static let schema = "sysCategory"
  13. @ID(custom: "id", generatedBy: .database) var id: Int?
  14. @Field(key: "name") var name: String?
  15. @Field(key: "description") var description: String?
  16. @Children(for: \.$syscat) var uoms: [mdlSysUOM]
  17. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  18. @Field(key: "createUserId") var createuserid: Int?
  19. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  20. @Field(key: "updateUserId") var updateuserid: Int?
  21. init() { }
  22. init(id: Int? = nil,
  23. name: String? = nil,
  24. description: String? = nil,
  25. createuserid: Int? = nil,
  26. updateuserid: Int? = nil
  27. ) {
  28. self.id = id
  29. self.name = name
  30. self.description = description
  31. self.createuserid = createuserid
  32. self.updateuserid = updateuserid
  33. }
  34. }
  35. extension mdlSysCategory{
  36. struct Create: AsyncMigration {
  37. func prepare(on database: Database) async throws {
  38. try await database.schema("sysCategory")
  39. .field("id", .int, .identifier(auto: true))
  40. .field("name", .string)
  41. .field("description", .string)
  42. .field("createDate", .datetime)
  43. .field("createUserId", .int)
  44. .field("updateDate", .datetime)
  45. .field("updateUserId", .int)
  46. .create()
  47. }
  48. func revert(on database: Database) async throws {
  49. try await database.schema("sysCategory").delete()
  50. }
  51. }
  52. struct Seed: AsyncMigration{
  53. func prepare(on database: FluentKit.Database) async throws {
  54. let mdls: [mdlSysCategory] = [
  55. .init(id: 1,
  56. name: "LENGTH",
  57. description: "Unit of distance.",
  58. createuserid: -1,
  59. updateuserid: -1),
  60. .init(id: 2,
  61. name: "WEIGHT",
  62. description: "Unit of force.",
  63. createuserid: -1,
  64. updateuserid: -1),
  65. .init(id: 3,
  66. name: "CAPACITY",
  67. description: "Unit of capacity.",
  68. createuserid: -1,
  69. updateuserid: -1),
  70. .init(id: 4,
  71. name: "VOLUME",
  72. description: "Unit of volume.",
  73. createuserid: -1,
  74. updateuserid: -1),
  75. .init(id: 5,
  76. name: "AREA",
  77. description: "Unit of area.",
  78. createuserid: -1,
  79. updateuserid: -1),
  80. .init(id: 6,
  81. name: "TEMPERATURE",
  82. description: "Unit of temperature.",
  83. createuserid: -1,
  84. updateuserid: -1)
  85. ]
  86. for mdl in mdls{
  87. try await mdl.save(on: database)
  88. }
  89. }
  90. func revert(on database: Database) async throws {
  91. try await mdlSysCategory.query(on: database).delete()
  92. }
  93. }
  94. }