use crate::dateutil::*;
use chrono::NaiveDate;
use julianday::JulianDay;
use sqlx::Query;
#[derive(PartialEq, Clone, Debug, sqlx::FromRow)]
pub struct RTLive {
pub date_julian: i32,
pub state: String,
pub rtindex: i64,
pub mean: f64,
pub median: f64,
pub lower_80: f64,
pub upper_80: f64,
pub infections: f64,
pub test_adjusted_positive: f64,
pub test_adjusted_positive_raw: f64,
pub positive: i64,
pub tests: i64,
pub new_tests: Option<i64>,
pub new_cases: Option<i64>,
pub new_deaths: Option<i64>,
}
impl RTLive {
pub fn bind_query<'q>(self, query: Query<'q, sqlx::Sqlite>) -> Query<'q, sqlx::Sqlite> {
query
.bind(self.date_julian)
.bind(self.state)
.bind(self.rtindex)
.bind(self.mean)
.bind(self.median)
.bind(self.lower_80)
.bind(self.upper_80)
.bind(self.infections)
.bind(self.test_adjusted_positive)
.bind(self.test_adjusted_positive_raw)
.bind(self.positive)
.bind(self.tests)
.bind(self.new_tests)
.bind(self.new_cases)
.bind(self.new_deaths)
}
pub fn insert_str() -> &'static str {
"INSERT INTO rtlive_raw VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
}
pub fn set_date(&mut self, julian: i32) {
self.date_julian = julian;
}
#[allow(dead_code)]
pub fn set_date_julianday(&mut self, jd: &JulianDay) {
self.set_date(jd_to_day(jd));
}
#[allow(dead_code)]
pub fn set_date_naivedate(&mut self, nd: &NaiveDate) {
self.set_date(nd_to_day(nd));
}
}