Files
gree-controller/src/queries/entities.rs
T
2026-08-30 13:39:29 +02:00

71 lines
3.0 KiB
Rust

pub const COUNT_DEVICES: &str = "SELECT COUNT(*) FROM devices";
pub const UPSERT_DEVICE: &str = r#"
INSERT INTO devices(id, mac, name, ip, simulated, payload, updated_at)
VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)
ON CONFLICT(id) DO UPDATE SET
mac=excluded.mac,
name=excluded.name,
ip=excluded.ip,
simulated=excluded.simulated,
payload=excluded.payload,
updated_at=excluded.updated_at
"#;
pub const LIST_DEVICES: &str = "SELECT payload FROM devices ORDER BY name COLLATE NOCASE";
pub const GET_DEVICE_BY_ID: &str = "SELECT payload FROM devices WHERE id=?1";
pub const GET_DEVICE_BY_MAC: &str = "SELECT payload FROM devices WHERE lower(mac)=lower(?1)";
pub const DELETE_DEVICE_READINGS: &str = "DELETE FROM readings WHERE device_id=?1";
pub const DELETE_SCHEDULES_BY_DEVICE_ID: &str =
"DELETE FROM schedules WHERE zone_id IN (SELECT id FROM zones WHERE json_extract(payload, '$.device_id')=?1)";
pub const DELETE_ZONES_BY_DEVICE_ID: &str =
"DELETE FROM zones WHERE json_extract(payload, '$.device_id')=?1";
pub const DELETE_DEVICE: &str = "DELETE FROM devices WHERE id=?1";
pub const UPSERT_ZONE: &str = r#"
INSERT INTO zones(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_ZONES: &str =
"SELECT payload FROM zones ORDER BY json_extract(payload, '$.name') COLLATE NOCASE";
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
zone_id=excluded.zone_id,
payload=excluded.payload,
updated_at=excluded.updated_at
"#;
pub const LIST_SCHEDULES: &str =
"SELECT payload FROM schedules ORDER BY json_extract(payload, '$.name') COLLATE NOCASE";
pub const GET_SCHEDULE: &str = "SELECT payload FROM schedules WHERE id=?1";
pub const DELETE_SCHEDULE: &str = "DELETE FROM schedules WHERE id=?1";
pub const UPSERT_AUTOMATION: &str = r#"
INSERT INTO automations(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_AUTOMATIONS: &str =
"SELECT payload FROM automations ORDER BY json_extract(payload, '$.name') COLLATE NOCASE";
pub const GET_AUTOMATION: &str = "SELECT payload FROM automations WHERE id=?1";
pub const DELETE_AUTOMATION: &str = "DELETE FROM automations WHERE id=?1";