// // FuelEntry.swift // // // Created by Bill Ryckman on 4/24/23. // import Fluent import Vapor final class FuelEntry: Model, Content { static let schema = "fuel_entries" struct woimage: Content{ let id: UUID? let timestamp: Date let userID: String let latitude: Double let longitude: Double let product: String let make: String let model: String let serialNumber: String let tankID: String let fuelAmount: Double let fuelType: String let image: Data? let isOverride: Bool let downloaded: Bool? let loaddate: Date? let pulldate: Date? let useremail: String? func toFuelEntry() -> FuelEntry { let entry = FuelEntry() entry.id = self.id entry.timestamp = self.timestamp entry.userID = self.userID entry.latitude = self.latitude entry.longitude = self.longitude entry.product = self.product entry.make = self.make entry.model = self.model entry.serialNumber = self.serialNumber entry.tankID = self.tankID entry.fuelAmount = self.fuelAmount entry.fuelType = self.fuelType entry.isOverride = self.isOverride entry.image = nil entry.downloaded = self.downloaded entry.loaddate = self.loaddate entry.pulldate = self.pulldate entry._$idExists = self.id == nil ? false : true entry.tabletserial = self.useremail return entry } } struct Output: Content { let id: UUID? let timestamp: Date let ssid: String let latitude: Double let longitude: Double let product: String let make: String let model: String let serialNumber: String let tankID: String let fuelAmount: Double let fuelType: String let isOverride: Bool let image: Data? let loaddate: Date? let useremail: String? } struct wimage: Content{ let id: UUID? let timestamp: Date let userID: String let latitude: Double let longitude: Double let product: String let make: String let model: String let serialNumber: String let tankID: String let fuelAmount: Double let fuelType: String let isOverride: Bool let image: Data? let downloaded: Bool? let loaddate: Date? let pulldate: Date? func toFuelEntry() -> FuelEntry { let entry = FuelEntry() entry.id = self.id entry.timestamp = self.timestamp entry.userID = self.userID entry.latitude = self.latitude entry.longitude = self.longitude entry.product = self.product entry.make = self.make entry.model = self.model entry.serialNumber = self.serialNumber entry.tankID = self.tankID entry.fuelAmount = self.fuelAmount entry.fuelType = self.fuelType entry.isOverride = self.isOverride entry.image = self.image entry.downloaded = self.downloaded entry.loaddate = self.loaddate entry.pulldate = self.pulldate entry._$idExists = self.id == nil ? false : true return entry } } @ID(key: .id) var id: UUID? @Field(key: "timestamp") var timestamp: Date @Field(key: "user_id") var userID: String @Field(key: "latitude") var latitude: Double @Field(key: "longitude") var longitude: Double @Field(key: "image") var image: Data? @Field(key: "product") var product: String @Field(key: "make") var make: String @Field(key: "model") var model: String @Field(key: "serial_number") var serialNumber: String @Field(key: "tank_id") var tankID: String @Field(key: "fuel_amount") var fuelAmount: Double @Field(key: "fuel_type") var fuelType: String @Field(key: "is_override") var isOverride: Bool @Field(key: "downloaded") var downloaded: Bool? @Field(key: "tablet_serial") var tabletserial: String? @Timestamp(key: "loadDate", on: .create) var loaddate: Date? @Timestamp(key: "pullDate", on: .none) var pulldate: Date? // var imageData: Data? init() {} 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? self.id = id self.timestamp = timestamp self.userID = userID self.latitude = latitude self.longitude = longitude self.image = image ?? nil self.product = product self.make = make self.model = model self.serialNumber = serialNumber self.tankID = tankID self.fuelAmount = fuelAmount self.fuelType = fuelType self.isOverride = isOverride self.downloaded = downloaded ?? nil self.image = image ?? nil self.tabletserial = tabletserial ?? nil // self.imageData = imageData } 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? self.id = id self.timestamp = timestamp self.userID = userID self.latitude = latitude self.longitude = longitude self.image = image ?? nil self.product = product self.make = make self.model = model self.serialNumber = serialNumber self.tankID = tankID self.fuelAmount = fuelAmount self.fuelType = fuelType self.isOverride = isOverride self.downloaded = downloaded ?? nil self.image = image ?? nil self.tabletserial = tabletserial ?? nil // self.imageData = imageData } 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? self.id = id self.timestamp = timestamp self.userID = userID self.latitude = latitude self.longitude = longitude self.image = image ?? nil self.product = product self.make = make self.model = model self.serialNumber = serialNumber self.tankID = tankID self.fuelAmount = fuelAmount self.fuelType = fuelType self.isOverride = isOverride self.tabletserial = tabletserial ?? nil // self.imageData = imageData } }