72 lines
2.5 KiB
Rust
72 lines
2.5 KiB
Rust
pub const COMPACT_DEVICE_HISTORY: &str = r#"
|
|
DELETE FROM readings WHERE id IN (
|
|
SELECT id FROM (
|
|
SELECT id, ROW_NUMBER() OVER (
|
|
PARTITION BY device_id, CAST(unixepoch(timestamp)/?1 AS INTEGER)
|
|
ORDER BY timestamp DESC, id DESC
|
|
) AS rn
|
|
FROM readings WHERE timestamp < ?2 AND timestamp >= ?3
|
|
) WHERE rn > 1
|
|
)
|
|
"#;
|
|
|
|
pub const COMPACT_ZONE_HISTORY: &str = r#"
|
|
DELETE FROM zone_readings WHERE id IN (
|
|
SELECT id FROM (
|
|
SELECT id, ROW_NUMBER() OVER (
|
|
PARTITION BY zone_id, CAST(unixepoch(timestamp)/?1 AS INTEGER)
|
|
ORDER BY timestamp DESC, id DESC
|
|
) AS rn
|
|
FROM zone_readings WHERE timestamp < ?2 AND timestamp >= ?3
|
|
) WHERE rn > 1
|
|
)
|
|
"#;
|
|
|
|
pub const COMPACT_HA_HISTORY: &str = r#"
|
|
DELETE FROM ha_readings WHERE id IN (
|
|
SELECT id FROM (
|
|
SELECT id, ROW_NUMBER() OVER (
|
|
PARTITION BY entity_id, COALESCE(zone_id,''), kind, CAST(unixepoch(timestamp)/?1 AS INTEGER)
|
|
ORDER BY timestamp DESC, id DESC
|
|
) AS rn
|
|
FROM ha_readings WHERE timestamp < ?2 AND timestamp >= ?3
|
|
) WHERE rn > 1
|
|
)
|
|
"#;
|
|
|
|
pub const CLEAR_CONFIGURATION: &str = r#"
|
|
DELETE FROM schedules;
|
|
DELETE FROM automations;
|
|
DELETE FROM flows;
|
|
DELETE FROM climate_groups;
|
|
DELETE FROM zones;
|
|
DELETE FROM devices;
|
|
"#;
|
|
pub const HISTORY_COUNTS: &str = r#"
|
|
SELECT
|
|
(SELECT COUNT(*) FROM readings),
|
|
(SELECT COUNT(*) FROM zone_readings),
|
|
(SELECT COUNT(*) FROM ha_readings)
|
|
"#;
|
|
|
|
pub const INSERT_EVENT: &str =
|
|
"INSERT INTO event_log(timestamp,level,kind,message,metadata) VALUES(?1,?2,?3,?4,?5)";
|
|
pub const LIST_EVENTS: &str =
|
|
"SELECT id,timestamp,level,kind,message,metadata FROM event_log ORDER BY id DESC LIMIT ?1";
|
|
pub const PRUNE_EVENTS: &str = "DELETE FROM event_log WHERE timestamp < ?1";
|
|
|
|
pub const LIST_API_TOKENS: &str =
|
|
"SELECT id,name,token_prefix,created_at FROM api_tokens ORDER BY created_at DESC";
|
|
pub const INSERT_API_TOKEN: &str =
|
|
"INSERT INTO api_tokens(id,name,token_hash,token_prefix,created_at) VALUES(?1,?2,?3,?4,?5)";
|
|
pub const API_TOKEN_EXISTS: &str = "SELECT 1 FROM api_tokens WHERE token_hash=?1 LIMIT 1";
|
|
pub const DELETE_API_TOKEN: &str = "DELETE FROM api_tokens WHERE id=?1";
|
|
|
|
pub const LOAD_RUNTIME_SETTINGS: &str = "SELECT value FROM settings WHERE key='runtime'";
|
|
pub const UPSERT_RUNTIME_SETTINGS: &str = r#"
|
|
INSERT INTO settings(key,value,updated_at) VALUES('runtime',?1,?2)
|
|
ON CONFLICT(key) DO UPDATE SET
|
|
value=excluded.value,
|
|
updated_at=excluded.updated_at
|
|
"#;
|