Skip to main content

scud/db/
sessions.rs

1//! Session database operations.
2//!
3//! Manages swarm session records in SQLite.
4
5use anyhow::Result;
6use rusqlite::{params, Connection};
7
8pub fn insert_session(
9    conn: &Connection,
10    session_id: &str,
11    session_name: &str,
12    tag: &str,
13    terminal_mode: &str,
14    working_dir: &str,
15    round_size: Option<usize>,
16) -> Result<()> {
17    conn.execute(
18        "INSERT OR IGNORE INTO sessions
19         (session_id, session_name, tag, terminal_mode, working_dir, round_size, started_at)
20         VALUES (?1, ?2, ?3, ?4, ?5, ?6, datetime('now'))",
21        params![
22            session_id,
23            session_name,
24            tag,
25            terminal_mode,
26            working_dir,
27            round_size.map(|r| r as i64),
28        ],
29    )?;
30    Ok(())
31}
32
33pub fn complete_session(conn: &Connection, session_id: &str) -> Result<()> {
34    conn.execute(
35        "UPDATE sessions SET completed_at = datetime('now') WHERE session_id = ?",
36        params![session_id],
37    )?;
38    Ok(())
39}