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.

206 lines
6.3 KiB

  1. //
  2. // FuelEntry.swift
  3. //
  4. //
  5. // Created by Bill Ryckman on 4/24/23.
  6. //
  7. import Fluent
  8. import Vapor
  9. final class FuelEntry: Model, Content {
  10. static let schema = "fuel_entries"
  11. struct woimage: Content{
  12. let id: UUID?
  13. let timestamp: Date
  14. let userID: String
  15. let latitude: Double
  16. let longitutde: Double
  17. let product: String
  18. let make: String
  19. let model: String
  20. let serialNumber: String
  21. let tankID: String
  22. let fuelAmount: Double
  23. let fuelType: String
  24. let image: Data?
  25. let isOverride: Bool
  26. let downloaded: Bool?
  27. let loaddate: Date?
  28. let pulldate: Date?
  29. func toFuelEntry() -> FuelEntry {
  30. var entry = FuelEntry()
  31. entry.id = self.id
  32. entry.timestamp = self.timestamp
  33. entry.userID = self.userID
  34. entry.latitude = self.latitude
  35. entry.longitude = self.longitutde
  36. entry.product = self.product
  37. entry.make = self.make
  38. entry.model = self.model
  39. entry.serialNumber = self.serialNumber
  40. entry.tankID = self.tankID
  41. entry.fuelAmount = self.fuelAmount
  42. entry.fuelType = self.fuelType
  43. entry.isOverride = self.isOverride
  44. entry.image = nil
  45. entry.downloaded = self.downloaded
  46. entry.loaddate = self.loaddate
  47. entry.pulldate = self.pulldate
  48. entry._$idExists = self.id == nil ? false : true
  49. return entry
  50. }
  51. }
  52. struct wimage: Content{
  53. let id: UUID?
  54. let timestamp: Date
  55. let userID: String
  56. let latitude: Double
  57. let longitutde: Double
  58. let product: String
  59. let make: String
  60. let model: String
  61. let serialNumber: String
  62. let tankID: String
  63. let fuelAmount: Double
  64. let fuelType: String
  65. let isOverride: Bool
  66. let image: Data?
  67. let downloaded: Bool?
  68. let loaddate: Date?
  69. let pulldate: Date?
  70. func toFuelEntry() -> FuelEntry {
  71. var entry = FuelEntry()
  72. entry.id = self.id
  73. entry.timestamp = self.timestamp
  74. entry.userID = self.userID
  75. entry.latitude = self.latitude
  76. entry.longitude = self.longitutde
  77. entry.product = self.product
  78. entry.make = self.make
  79. entry.model = self.model
  80. entry.serialNumber = self.serialNumber
  81. entry.tankID = self.tankID
  82. entry.fuelAmount = self.fuelAmount
  83. entry.fuelType = self.fuelType
  84. entry.isOverride = self.isOverride
  85. entry.image = self.image
  86. entry.downloaded = self.downloaded
  87. entry.loaddate = self.loaddate
  88. entry.pulldate = self.pulldate
  89. entry._$idExists = self.id == nil ? false : true
  90. return entry
  91. }
  92. }
  93. @ID(key: .id)
  94. var id: UUID?
  95. @Field(key: "timestamp")
  96. var timestamp: Date
  97. @Field(key: "user_id")
  98. var userID: String
  99. @Field(key: "latitude")
  100. var latitude: Double
  101. @Field(key: "longitude")
  102. var longitude: Double
  103. @Field(key: "image")
  104. var image: Data?
  105. @Field(key: "product")
  106. var product: String
  107. @Field(key: "make")
  108. var make: String
  109. @Field(key: "model")
  110. var model: String
  111. @Field(key: "serial_number")
  112. var serialNumber: String
  113. @Field(key: "tank_id")
  114. var tankID: String
  115. @Field(key: "fuel_amount")
  116. var fuelAmount: Double
  117. @Field(key: "fuel_type")
  118. var fuelType: String
  119. @Field(key: "is_override")
  120. var isOverride: Bool
  121. @Field(key: "downloaded")
  122. var downloaded: Bool?
  123. @Timestamp(key: "loadDate", on: .create) var loaddate: Date?
  124. @Timestamp(key: "pullDate", on: .none) var pulldate: Date?
  125. // var imageData: Data?
  126. init() {}
  127. init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool, downloaded: Bool?) { //imageData: Data?
  128. self.id = id
  129. self.timestamp = timestamp
  130. self.userID = userID
  131. self.latitude = latitude
  132. self.longitude = longitude
  133. self.image = image ?? nil
  134. self.product = product
  135. self.make = make
  136. self.model = model
  137. self.serialNumber = serialNumber
  138. self.tankID = tankID
  139. self.fuelAmount = fuelAmount
  140. self.fuelType = fuelType
  141. self.isOverride = isOverride
  142. self.downloaded = downloaded ?? nil
  143. self.image = image ?? nil
  144. // self.imageData = imageData
  145. }
  146. init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, image: Data?, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool) { //imageData: Data?
  147. self.id = id
  148. self.timestamp = timestamp
  149. self.userID = userID
  150. self.latitude = latitude
  151. self.longitude = longitude
  152. self.image = image ?? nil
  153. self.product = product
  154. self.make = make
  155. self.model = model
  156. self.serialNumber = serialNumber
  157. self.tankID = tankID
  158. self.fuelAmount = fuelAmount
  159. self.fuelType = fuelType
  160. self.isOverride = isOverride
  161. self.downloaded = downloaded ?? nil
  162. self.image = image ?? nil
  163. // self.imageData = imageData
  164. }
  165. init(id: UUID? = nil, timestamp: Date, userID: String, latitude: Double, longitude: Double, product: String, make: String, model: String, serialNumber: String, tankID: String, fuelAmount: Double, fuelType: String, isOverride: Bool) { //imageData: Data?
  166. self.id = id
  167. self.timestamp = timestamp
  168. self.userID = userID
  169. self.latitude = latitude
  170. self.longitude = longitude
  171. self.image = image ?? nil
  172. self.product = product
  173. self.make = make
  174. self.model = model
  175. self.serialNumber = serialNumber
  176. self.tankID = tankID
  177. self.fuelAmount = fuelAmount
  178. self.fuelType = fuelType
  179. self.isOverride = isOverride
  180. // self.imageData = imageData
  181. }
  182. }