28 lines
871 B
Rust
28 lines
871 B
Rust
use std::{path::Path, sync::{Arc, Mutex}};
|
|
use anyhow::{Context, Result};
|
|
use chrono::{DateTime, Duration, Utc};
|
|
use rusqlite::{params, Connection, OptionalExtension};
|
|
use serde::{de::DeserializeOwned, Serialize};
|
|
use serde_json::Value;
|
|
use crate::{
|
|
models::{ApiTokenInfo, Automation, ClimateGroup, ConfigurationExport, Device, EventLog, HaReading, Reading, RuntimeSettings, Schedule, Zone, ZoneReading},
|
|
queries,
|
|
};
|
|
|
|
#[derive(Clone)]
|
|
pub struct Db {
|
|
conn: Arc<Mutex<Connection>>,
|
|
}
|
|
|
|
|
|
// Functional source split intentionally keeps items in the existing module namespace.
|
|
include!("db/core_devices.rs");
|
|
include!("db/climate.rs");
|
|
include!("db/schedules_automations.rs");
|
|
include!("db/device_history.rs");
|
|
include!("db/zone_history.rs");
|
|
include!("db/ha_history.rs");
|
|
include!("db/events_tokens.rs");
|
|
include!("db/configuration.rs");
|
|
include!("db/tests.rs");
|