use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use tokio_postgres::Row;
#[derive(Serialize, Deserialize, Debug)]
pub struct TrendDataRaw {
pub externallogid: i64,
pub timestamp: String,
pub timestamp_tzinfo: i64,
pub value: Option<f64>,
}
#[derive(Debug, Clone)]
pub struct TrendDataDb {
pub log_id: i64,
pub timestamp: DateTime<Utc>,
pub value: Option<f64>
}
#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct MetadataJson {
pub externallogid: i64,
pub source: String,
pub unit: String,
}
#[derive(Clone, Serialize, Deserialize, Debug)]
pub struct MetadataDb {
pub log_id: i64,
pub source: String,
pub unit: String,
}
impl From<&Row> for MetadataDb {
fn from(value: &Row) -> MetadataDb {
let log_id: i64 = value.get("log_id");
let source: String = value.get("source");
let unit: String = value.get("unit");
MetadataDb { log_id, source, unit }
}
}
impl From<&Row> for TrendDataDb {
fn from(row: &Row) -> TrendDataDb {
let log_id: i64 = row.get("log_id");
let timestamp: DateTime<Utc> = row.get("timestamp");
let value: Option<f64> = row.get("value");
TrendDataDb {
log_id,
timestamp,
value
}
}
}