Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2 лет назад
2 лет назад
2 лет назад
2 лет назад
2 лет назад
2 лет назад
2 лет назад
2 лет назад
2 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. //
  2. // OilSample.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 mdlOilSample: Model, Content {
  12. static let schema = "oilSample"
  13. @ID(custom: "id", generatedBy: .database) var id: Int?
  14. @Parent(key: "workOrderSegmentId") var segment: mdlWorkOrderSegment
  15. @Field(key: "name") var name: String?
  16. @Field(key: "code") var code: String?
  17. @Field(key: "l1Name") var l1name: String?
  18. @Field(key: "l1Code") var l1code: String?
  19. @Field(key: "l2Name") var l2name: String?
  20. @Field(key: "l2Code") var l2code: String?
  21. @Field(key: "meterReading") var meterreading: Decimal?
  22. @Field(key: "previousMeterReading") var previousmeterreading: Decimal?
  23. @Field(key: "hoursOnOil") var hoursonoil: Decimal?
  24. @Field(key: "oilAdded") var oiladded: Decimal?
  25. @Field(key: "unit") var unit: String?
  26. @Field(key: "jobSite") var jobsite: String?
  27. @Field(key: "fluid") var fluid: String?
  28. @Field(key: "viscosity") var viscosity: String?
  29. @Field(key: "oilChanged") var oilchanged: Bool?
  30. @Field(key: "filterChanged") var filterchanged: Bool?
  31. @Field(key: "level") var level: String?
  32. @Field(key: "comment") var comment: String?
  33. @Field(key: "sortOrder") var sortorder: Int?
  34. @Timestamp(key: "createDate", on: .create) var createdate: Date?
  35. @Field(key: "createUserId") var createuserid: Int?
  36. @Timestamp(key: "updateDate", on: .update) var updatedate: Date?
  37. @Field(key: "updateUserId") var updateuserid: Int?
  38. init() { }
  39. init(id: Int? = nil, segmentid: Int, name: String? = nil, code: String? = nil, l1name: String? = nil, l1code: String? = nil, l2name: String? = nil, l2code: String? = nil, meterreading: Decimal? = nil, previousmeterreading: Decimal? = nil, hoursonoil: Decimal? = nil, oiladded: Decimal? = nil, unit: String? = nil, jobsite: String? = nil, fluid: String? = nil, viscosity: String? = nil, oilchanged: Bool? = nil, filterchanged: Bool? = nil, level: String? = nil, comment: String? = nil, sortorder: Int? = nil, createuserid: Int? = nil, updateuserid: Int? = nil) {
  40. self.id = id
  41. self.$segment.$id.value = segmentid
  42. self.name = name
  43. self.code = code
  44. self.l1name = l1name
  45. self.l1code = l1code
  46. self.l2name = l2name
  47. self.l2code = l2code
  48. self.meterreading = meterreading
  49. self.previousmeterreading = previousmeterreading
  50. self.hoursonoil = hoursonoil
  51. self.oiladded = oiladded
  52. self.unit = unit
  53. self.jobsite = jobsite
  54. self.fluid = fluid
  55. self.viscosity = viscosity
  56. self.oilchanged = oilchanged
  57. self.filterchanged = filterchanged
  58. self.level = level
  59. self.comment = comment
  60. self.sortorder = sortorder
  61. self.createuserid = createuserid
  62. self.updateuserid = updateuserid
  63. }
  64. }
  65. extension mdlOilSample{
  66. struct Create: AsyncMigration {
  67. func prepare(on database: Database) async throws {
  68. try await database.schema("oilSample")
  69. .field("id", .int, .identifier(auto: true))
  70. .field("segmentId", .int, .references("segment", "id"))
  71. .field("name", .string)
  72. .field("code", .string)
  73. .field("l1Name", .string)
  74. .field("l1Code", .string)
  75. .field("l2Name", .string)
  76. .field("l2Code", .string)
  77. .field("meterReading", .float)
  78. .field("previousMeterReading", .float)
  79. .field("hoursOnOil", .float)
  80. .field("oilAdded", .float)
  81. .field("unit", .string)
  82. .field("jobSite", .string)
  83. .field("fluid", .string)
  84. .field("viscosity", .string)
  85. .field("oilChanged", .bool)
  86. .field("filterChanged", .bool)
  87. .field("level", .string)
  88. .field("comment", .string)
  89. .field("createDate", .datetime)
  90. .field("createUserId", .int)
  91. .field("updateDate", .datetime)
  92. .field("updateUserId", .int)
  93. .create()
  94. }
  95. func revert(on database: Database) async throws {
  96. try await database.schema("oilSample").delete()
  97. }
  98. }
  99. struct Mod1: AsyncMigration{
  100. func prepare(on database: Database) async throws {
  101. try await database.schema("oilSample")
  102. .field("sortOrder", .int)
  103. .update()
  104. }
  105. func revert(on database: Database) async throws {
  106. try await database.schema("oilSample")
  107. .deleteField("sortOrder")
  108. .update()
  109. }
  110. }
  111. struct Mod2: AsyncMigration{
  112. func prepare(on database: Database) async throws {
  113. try await database.schema("oilSample")
  114. .deleteField("segmentId")
  115. .field("workOrderSegmentId", .int, .references("workOrderSegment", "id"))
  116. .update()
  117. }
  118. func revert(on database: Database) async throws {
  119. try await database.schema("oilSample")
  120. .deleteField("workOrderSegmentId")
  121. .field("segmentId", .int, .references("segment", "id"))
  122. .update()
  123. }
  124. }
  125. public static func ObjQuery(req: Request) async throws -> QueryBuilder<mdlOilSample>{
  126. let query = mdlOilSample.query(on: req.db)
  127. .with(\.$segment)
  128. if let x = req.parameters.get("x"){
  129. let dataQuery = req.parameters.get("x")
  130. let decryptedString = try CustomCrypto.DecryptString(input: dataQuery!)
  131. let x = decryptedString.components(separatedBy: ":")
  132. ///This call is the standard get by id call
  133. if (x.count == 1){
  134. let id = Int(x[0])!
  135. return query.filter(\.$id == id)
  136. }
  137. ///Optional else if if there are multiple parameters in the call
  138. ///You must include an else for each call that has parameters
  139. ///Need to check the endpoint to get the right filter statements
  140. ///else if(x.count == 2){
  141. /// let username = x[0]
  142. /// let password = x[1]
  143. /// return query.filter(\.$username == username).filter(\.$password == password)
  144. ///}
  145. else{
  146. throw Abort(.badRequest)
  147. }
  148. }
  149. else{
  150. return query
  151. }
  152. }
  153. }