use super::*;
#[async_trait]
impl crate::traits::SettingsStore for SqliteStateStore {
async fn get_setting(&self, key: &str) -> anyhow::Result<Option<String>> {
let row = sqlx::query("SELECT value FROM settings WHERE key = ?")
.bind(key)
.fetch_optional(&self.pool)
.await?;
Ok(row.map(|r| r.get::<String, _>("value")))
}
async fn set_setting(&self, key: &str, value: &str) -> anyhow::Result<()> {
sqlx::query(
"INSERT INTO settings (key, value, updated_at) VALUES (?, ?, datetime('now'))
ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at",
)
.bind(key)
.bind(value)
.execute(&self.pool)
.await?;
Ok(())
}
}