Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

296 linhas
9.4 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 longitude: 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. let useremail: String?
  30. func toFuelEntry() -> FuelEntry {
  31. let entry = FuelEntry()
  32. entry.id = self.id
  33. entry.timestamp = self.timestamp
  34. entry.userID = self.userID
  35. entry.latitude = self.latitude
  36. entry.longitude = self.longitude
  37. entry.product = self.product
  38. entry.make = self.make
  39. entry.model = self.model
  40. entry.serialNumber = self.serialNumber
  41. entry.tankID = self.tankID
  42. entry.fuelAmount = self.fuelAmount
  43. entry.fuelType = self.fuelType
  44. entry.isOverride = self.isOverride
  45. entry.image = nil
  46. entry.downloaded = self.downloaded
  47. entry.loaddate = self.loaddate
  48. entry.pulldate = self.pulldate
  49. entry._$idExists = self.id == nil ? false : true
  50. entry.tabletserial = self.useremail
  51. return entry
  52. }
  53. }
  54. struct Output: Content {
  55. let id: UUID?
  56. let timestamp: Date
  57. let ssid: String
  58. let latitude: Double
  59. let longitude: Double
  60. let product: String
  61. let make: String
  62. let model: String
  63. let serialNumber: String
  64. let tankID: String
  65. let fuelAmount: Double
  66. let fuelType: String
  67. let isOverride: Bool
  68. let image: Data?
  69. let loaddate: Date?
  70. let useremail: String?
  71. }
  72. struct wimage: Content{
  73. let id: UUID?
  74. let timestamp: Date
  75. let userID: String
  76. let latitude: Double
  77. let longitude: Double
  78. let product: String
  79. let make: String
  80. let model: String
  81. let serialNumber: String
  82. let tankID: String
  83. let fuelAmount: Double
  84. let fuelType: String
  85. let isOverride: Bool
  86. let image: Data?
  87. let downloaded: Bool?
  88. let loaddate: Date?
  89. let pulldate: Date?
  90. func toFuelEntry() -> FuelEntry {
  91. let entry = FuelEntry()
  92. entry.id = self.id
  93. entry.timestamp = self.timestamp
  94. entry.userID = self.userID
  95. entry.latitude = self.latitude
  96. entry.longitude = self.longitude
  97. entry.product = self.product
  98. entry.make = self.make
  99. entry.model = self.model
  100. entry.serialNumber = self.serialNumber
  101. entry.tankID = self.tankID
  102. entry.fuelAmount = self.fuelAmount
  103. entry.fuelType = self.fuelType
  104. entry.isOverride = self.isOverride
  105. entry.image = self.image
  106. entry.downloaded = self.downloaded
  107. entry.loaddate = self.loaddate
  108. entry.pulldate = self.pulldate
  109. entry._$idExists = self.id == nil ? false : true
  110. return entry
  111. }
  112. }
  113. @ID(key: .id)
  114. var id: UUID?
  115. @Field(key: "timestamp")
  116. var timestamp: Date
  117. @Field(key: "user_id")
  118. var userID: String
  119. @Field(key: "latitude")
  120. var latitude: Double
  121. @Field(key: "longitude")
  122. var longitude: Double
  123. @Field(key: "image")
  124. var image: Data?
  125. @Field(key: "product")
  126. var product: String
  127. @Field(key: "make")
  128. var make: String
  129. @Field(key: "model")
  130. var model: String
  131. @Field(key: "serial_number")
  132. var serialNumber: String
  133. @Field(key: "tank_id")
  134. var tankID: String
  135. @Field(key: "fuel_amount")
  136. var fuelAmount: Double
  137. @Field(key: "fuel_type")
  138. var fuelType: String
  139. @Field(key: "is_override")
  140. var isOverride: Bool
  141. @Field(key: "downloaded")
  142. var downloaded: Bool?
  143. @Field(key: "tablet_serial")
  144. var tabletserial: String?
  145. @Field(key: "app_version")
  146. var appVersion: String?
  147. @Timestamp(key: "loadDate", on: .create) var loaddate: Date?
  148. @Timestamp(key: "pullDate", on: .none) var pulldate: Date?
  149. // var imageData: Data?
  150. init() {}
  151. 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? = nil, tabletserial: String? = nil, appversion: String? = nil) { //imageData: Data?
  152. self.id = id
  153. self.timestamp = timestamp
  154. self.userID = userID
  155. self.latitude = latitude
  156. self.longitude = longitude
  157. self.image = image ?? nil
  158. self.product = product
  159. self.make = make
  160. self.model = model
  161. self.serialNumber = serialNumber
  162. self.tankID = tankID
  163. self.fuelAmount = fuelAmount
  164. self.fuelType = fuelType
  165. self.isOverride = isOverride
  166. self.downloaded = downloaded ?? nil
  167. self.image = image ?? nil
  168. self.tabletserial = tabletserial ?? nil
  169. self.appVersion = appversion ?? nil
  170. // self.imageData = imageData
  171. }
  172. 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? = nil, tabletserial: String? = nil) { //imageData: Data?
  173. self.id = id
  174. self.timestamp = timestamp
  175. self.userID = userID
  176. self.latitude = latitude
  177. self.longitude = longitude
  178. self.image = image ?? nil
  179. self.product = product
  180. self.make = make
  181. self.model = model
  182. self.serialNumber = serialNumber
  183. self.tankID = tankID
  184. self.fuelAmount = fuelAmount
  185. self.fuelType = fuelType
  186. self.isOverride = isOverride
  187. self.downloaded = downloaded ?? nil
  188. self.image = image ?? nil
  189. self.tabletserial = tabletserial ?? nil
  190. // self.imageData = imageData
  191. }
  192. 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, tabletserial: String? = nil) { //imageData: Data?
  193. self.id = id
  194. self.timestamp = timestamp
  195. self.userID = userID
  196. self.latitude = latitude
  197. self.longitude = longitude
  198. self.image = image ?? nil
  199. self.product = product
  200. self.make = make
  201. self.model = model
  202. self.serialNumber = serialNumber
  203. self.tankID = tankID
  204. self.fuelAmount = fuelAmount
  205. self.fuelType = fuelType
  206. self.isOverride = isOverride
  207. self.downloaded = downloaded ?? nil
  208. self.image = image ?? nil
  209. self.tabletserial = tabletserial ?? nil
  210. // self.imageData = imageData
  211. }
  212. 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, tabletserial: String? = nil) { //imageData: Data?
  213. self.id = id
  214. self.timestamp = timestamp
  215. self.userID = userID
  216. self.latitude = latitude
  217. self.longitude = longitude
  218. self.image = image ?? nil
  219. self.product = product
  220. self.make = make
  221. self.model = model
  222. self.serialNumber = serialNumber
  223. self.tankID = tankID
  224. self.fuelAmount = fuelAmount
  225. self.fuelType = fuelType
  226. self.isOverride = isOverride
  227. self.tabletserial = tabletserial ?? nil
  228. // self.imageData = imageData
  229. }
  230. // struct V2_1_Input: Content {
  231. // var id: UUID?
  232. // var tabletSerial: Date?
  233. // var fuelAmount: Double?
  234. // var fuelType: String?
  235. // var timeStamp: Date?
  236. // var appVersion: String?
  237. // var longitude: String?
  238. // var product: String?
  239. // var latitude: String?
  240. // var serialNumber: String?
  241. // var isOverride: Bool?
  242. // var make: String?
  243. // var model: String?
  244. // var tankId: String?
  245. // var image: Data?
  246. // }
  247. init(from decoder: FuelEntry.V2_1_Input) throws {
  248. self.id = decoder.id
  249. self.timestamp = decoder.timeStamp ?? Date()
  250. self.fuelAmount = decoder.fuelAmount ?? 0
  251. self.fuelType = decoder.fuelType ?? ""
  252. self.appVersion = decoder.appVersion ?? ""
  253. self.longitude = decoder.longitude ?? 0
  254. self.product = decoder.product ?? ""
  255. self.latitude = decoder.latitude ?? 0
  256. self.serialNumber = decoder.serialNumber ?? ""
  257. self.isOverride = decoder.isOverride ?? false
  258. self.make = decoder.make ?? ""
  259. self.model = decoder.model ?? ""
  260. self.tankID = decoder.tankId ?? ""
  261. self.userID = decoder.userId ?? ""
  262. self.image = decoder.image
  263. self.tabletserial = decoder.tabletSerial ?? ""
  264. self.downloaded = false
  265. }
  266. }