25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

93 lines
2.8 KiB

  1. //
  2. // mdlSysOfMeasure.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 mdlSysOfMeasure: Model, Content {
  12. static let schema = "sysOfMeasure"
  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: \.$sys) 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 mdlSysOfMeasure{
  36. struct Create: AsyncMigration {
  37. func prepare(on database: Database) async throws {
  38. try await database.schema("sysOfMeasure")
  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("sysOfMeasure").delete()
  50. }
  51. }
  52. struct Seed: AsyncMigration{
  53. func prepare(on database: FluentKit.Database) async throws {
  54. let mdls: [mdlSysOfMeasure] = [
  55. .init(id: 1,
  56. name: "METRIC",
  57. description: "International System of Units",
  58. createuserid: -1,
  59. updateuserid: -1),
  60. .init(id: 2,
  61. name: "IMPERIAL",
  62. description: "British Imperial System",
  63. createuserid: -1,
  64. updateuserid: -1),
  65. .init(id: 3,
  66. name: "US",
  67. description: "US Customary System",
  68. createuserid: -1,
  69. updateuserid: -1)
  70. ]
  71. for mdl in mdls{
  72. try await mdl.save(on: database)
  73. }
  74. }
  75. func revert(on database: Database) async throws {
  76. try await mdlSysOfMeasure.query(on: database).delete()
  77. }
  78. }
  79. }