1-- name: CreateSession :one
2INSERT INTO sessions (
3 id,
4 parent_session_id,
5 title,
6 message_count,
7 prompt_tokens,
8 completion_tokens,
9 cost,
10 summary_message_id,
11 updated_at,
12 created_at
13) VALUES (
14 ?,
15 ?,
16 ?,
17 ?,
18 ?,
19 ?,
20 ?,
21 null,
22 strftime('%s', 'now'),
23 strftime('%s', 'now')
24) RETURNING *;
25
26-- name: GetSessionByID :one
27SELECT *
28FROM sessions
29WHERE id = ? LIMIT 1;
30
31-- name: ListSessions :many
32SELECT *
33FROM sessions
34WHERE parent_session_id is NULL
35ORDER BY updated_at DESC;
36
37-- name: UpdateSession :one
38UPDATE sessions
39SET
40 title = ?,
41 prompt_tokens = ?,
42 completion_tokens = ?,
43 summary_message_id = ?,
44 cost = ?,
45 todos = ?
46WHERE id = ?
47RETURNING *;
48
49-- name: UpdateSessionTitleAndUsage :exec
50UPDATE sessions
51SET
52 title = ?,
53 prompt_tokens = prompt_tokens + ?,
54 completion_tokens = completion_tokens + ?,
55 cost = cost + ?
56WHERE id = ?;
57
58
59-- name: DeleteSession :exec
60DELETE FROM sessions
61WHERE id = ?;