1use 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}