use super::{Error, Pool};
fn now_seconds() -> i64 {
use std::time::{SystemTime, UNIX_EPOCH};
SystemTime::now()
.duration_since(UNIX_EPOCH)
.map(|d| d.as_secs() as i64)
.unwrap_or(0)
}
pub async fn upsert(
pool: &Pool,
agent_instance_hierarchy: &str,
continuation: &str,
) -> Result<(), Error> {
sqlx::query(
"INSERT INTO agent_continuations \
(agent_instance_hierarchy, continuation, updated_at) \
VALUES ($1, $2, $3) \
ON CONFLICT (agent_instance_hierarchy) DO UPDATE SET \
continuation = EXCLUDED.continuation, \
updated_at = EXCLUDED.updated_at",
)
.bind(agent_instance_hierarchy)
.bind(continuation)
.bind(now_seconds())
.execute(&**pool)
.await?;
Ok(())
}