Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

325 righe
11 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. @Field(key: "unique_id") var uniqueID: String?
  150. // var imageData: Data?
  151. init() {}
  152. 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, uniqueID: String? = nil) { //imageData: Data?
  153. self.id = id
  154. self.timestamp = timestamp
  155. self.userID = userID
  156. self.latitude = latitude
  157. self.longitude = longitude
  158. self.image = image ?? nil
  159. self.product = product
  160. self.make = make
  161. self.model = model
  162. self.serialNumber = serialNumber
  163. self.tankID = tankID
  164. self.fuelAmount = fuelAmount
  165. self.fuelType = fuelType
  166. self.isOverride = isOverride
  167. self.downloaded = downloaded ?? nil
  168. self.image = image ?? nil
  169. self.tabletserial = tabletserial ?? nil
  170. self.appVersion = appversion ?? nil
  171. self.uniqueID = uniqueID
  172. // self.imageData = imageData
  173. }
  174. 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, uniqueID: String? = nil) { //imageData: Data?
  175. self.id = id
  176. self.timestamp = timestamp
  177. self.userID = userID
  178. self.latitude = latitude
  179. self.longitude = longitude
  180. self.image = image ?? nil
  181. self.product = product
  182. self.make = make
  183. self.model = model
  184. self.serialNumber = serialNumber
  185. self.tankID = tankID
  186. self.fuelAmount = fuelAmount
  187. self.fuelType = fuelType
  188. self.isOverride = isOverride
  189. self.downloaded = downloaded ?? nil
  190. self.image = image ?? nil
  191. self.tabletserial = tabletserial ?? nil
  192. self.uniqueID = uniqueID
  193. // self.imageData = imageData
  194. }
  195. 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, uniqueID: String? = nil) { //imageData: Data?
  196. self.id = id
  197. self.timestamp = timestamp
  198. self.userID = userID
  199. self.latitude = latitude
  200. self.longitude = longitude
  201. self.image = image ?? nil
  202. self.product = product
  203. self.make = make
  204. self.model = model
  205. self.serialNumber = serialNumber
  206. self.tankID = tankID
  207. self.fuelAmount = fuelAmount
  208. self.fuelType = fuelType
  209. self.isOverride = isOverride
  210. self.downloaded = downloaded ?? nil
  211. self.image = image ?? nil
  212. self.tabletserial = tabletserial ?? nil
  213. self.uniqueID = uniqueID
  214. // self.imageData = imageData
  215. }
  216. 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, uniqueID: String? = nil) { //imageData: Data?
  217. self.id = id
  218. self.timestamp = timestamp
  219. self.userID = userID
  220. self.latitude = latitude
  221. self.longitude = longitude
  222. self.image = image ?? nil
  223. self.product = product
  224. self.make = make
  225. self.model = model
  226. self.serialNumber = serialNumber
  227. self.tankID = tankID
  228. self.fuelAmount = fuelAmount
  229. self.fuelType = fuelType
  230. self.isOverride = isOverride
  231. self.tabletserial = tabletserial ?? nil
  232. self.uniqueID = uniqueID
  233. // self.imageData = imageData
  234. }
  235. // struct V2_1_Input: Content {
  236. // var id: UUID?
  237. // var tabletSerial: Date?
  238. // var fuelAmount: Double?
  239. // var fuelType: String?
  240. // var timeStamp: Date?
  241. // var appVersion: String?
  242. // var longitude: String?
  243. // var product: String?
  244. // var latitude: String?
  245. // var serialNumber: String?
  246. // var isOverride: Bool?
  247. // var make: String?
  248. // var model: String?
  249. // var tankId: String?
  250. // var image: Data?
  251. // }
  252. init(from decoder: FuelEntry.V2_1_Input) throws {
  253. self.id = decoder.id
  254. self.timestamp = decoder.timeStamp ?? Date()
  255. self.fuelAmount = decoder.fuelAmount ?? 0
  256. self.fuelType = decoder.fuelType ?? ""
  257. self.appVersion = decoder.appVersion ?? ""
  258. self.longitude = decoder.longitude ?? 0
  259. self.product = decoder.product ?? ""
  260. self.latitude = decoder.latitude ?? 0
  261. self.serialNumber = decoder.serialNumber ?? ""
  262. self.isOverride = decoder.isOverride ?? false
  263. self.make = decoder.make ?? ""
  264. self.model = decoder.model ?? ""
  265. self.tankID = decoder.tankId ?? ""
  266. self.userID = decoder.userId ?? ""
  267. self.image = decoder.image
  268. self.tabletserial = decoder.tabletSerial ?? ""
  269. self.downloaded = false
  270. }
  271. init(from decoder: FuelEntry.V2_2_Input) {
  272. self.id = decoder.id
  273. self.timestamp = decoder.timeStamp ?? Date()
  274. self.fuelAmount = decoder.fuelAmount ?? 0
  275. self.fuelType = decoder.fuelType ?? ""
  276. self.appVersion = decoder.appVersion ?? ""
  277. self.longitude = decoder.longitude ?? 0
  278. self.product = decoder.product ?? ""
  279. self.latitude = decoder.latitude ?? 0
  280. self.serialNumber = decoder.serialNumber ?? ""
  281. self.isOverride = decoder.isOverride ?? false
  282. self.make = decoder.make ?? ""
  283. self.model = decoder.model ?? ""
  284. self.tankID = decoder.tankId ?? ""
  285. self.userID = decoder.userId ?? ""
  286. self.image = decoder.image
  287. self.tabletserial = decoder.tabletSerial ?? ""
  288. self.downloaded = false
  289. self.uniqueID = decoder.uniqueID
  290. }
  291. }