This commit is contained in:
Mateusz Gruszczyński
2026-08-25 18:10:51 +02:00
parent 440c7c3a8d
commit 26d8f9f83a
21 changed files with 1031 additions and 98 deletions
+20
View File
@@ -36,6 +36,12 @@ CREATE TABLE IF NOT EXISTS zones (
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS climate_groups (
id TEXT PRIMARY KEY,
payload TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS schedules (
id TEXT PRIMARY KEY,
zone_id TEXT NOT NULL,
@@ -125,6 +131,8 @@ INSERT OR IGNORE INTO schema_migrations(version, applied_at)
VALUES (3, strftime('%Y-%m-%dT%H:%M:%fZ','now'));
INSERT OR IGNORE INTO schema_migrations(version, applied_at)
VALUES (4, strftime('%Y-%m-%dT%H:%M:%fZ','now'));
INSERT OR IGNORE INTO schema_migrations(version, applied_at)
VALUES (5, strftime('%Y-%m-%dT%H:%M:%fZ','now'));
"#;
pub const COUNT_DEVICES: &str = "SELECT COUNT(*) FROM devices";
@@ -161,6 +169,17 @@ pub const GET_ZONE: &str = "SELECT payload FROM zones WHERE id=?1";
pub const DELETE_SCHEDULES_BY_ZONE_ID: &str = "DELETE FROM schedules WHERE zone_id=?1";
pub const DELETE_ZONE: &str = "DELETE FROM zones WHERE id=?1";
pub const UPSERT_GROUP: &str = r#"
INSERT INTO climate_groups(id,payload,updated_at) VALUES(?1,?2,?3)
ON CONFLICT(id) DO UPDATE SET
payload=excluded.payload,
updated_at=excluded.updated_at
"#;
pub const LIST_GROUPS: &str =
"SELECT payload FROM climate_groups ORDER BY json_extract(payload, '$.name') COLLATE NOCASE";
pub const GET_GROUP: &str = "SELECT payload FROM climate_groups WHERE id=?1";
pub const DELETE_GROUP: &str = "DELETE FROM climate_groups WHERE id=?1";
pub const UPSERT_SCHEDULE: &str = r#"
INSERT INTO schedules(id,zone_id,payload,updated_at) VALUES(?1,?2,?3,?4)
ON CONFLICT(id) DO UPDATE SET
@@ -368,6 +387,7 @@ DELETE FROM ha_readings WHERE id IN (
pub const CLEAR_CONFIGURATION: &str = r#"
DELETE FROM schedules;
DELETE FROM automations;
DELETE FROM climate_groups;
DELETE FROM zones;
DELETE FROM devices;
"#;