HealthImport/HealthImport/Model/Tables/QuantitySamplesTable.swift
2024-02-02 13:06:27 +01:00

33 lines
1.0 KiB
Swift

import Foundation
import SQLite
struct QuantitySamplesTable {
private let database: Connection
init(database: Connection) {
self.database = database
}
func create() throws {
try database.execute("CREATE TABLE quantity_samples (data_id INTEGER PRIMARY KEY, quantity REAL, original_quantity REAL, original_unit INTEGER REFERENCES unit_strings (ROWID) ON DELETE NO ACTION)")
}
let table = Table("quantity_samples")
let dataId = Expression<Int>("data_id")
let quantity = Expression<Double?>("quantity")
let originalQuantity = Expression<Double?>("original_quantity")
/// References `ROWID` on table `unit_strings`
let originalUnit = Expression<Int?>("original_unit")
func quantity(for id: Int, in database: Database) throws -> (quantity: Double?, original: Double?, unit: Int?) {
try database.prepare(table.filter(dataId == id).limit(1)).map {
(quantity: $0[quantity], original: $0[originalQuantity], unit: $0[originalUnit])
}.first ?? (nil, nil, nil)
}
}