1// Code generated by sqlc. DO NOT EDIT.
2// versions:
3// sqlc v1.27.0
4// source: sessions.sql
5
6package db
7
8import (
9 "context"
10 "database/sql"
11)
12
13const createSession = `-- name: CreateSession :one
14INSERT INTO sessions (
15 id,
16 parent_session_id,
17 title,
18 message_count,
19 prompt_tokens,
20 completion_tokens,
21 cost,
22 updated_at,
23 created_at
24) VALUES (
25 ?,
26 ?,
27 ?,
28 ?,
29 ?,
30 ?,
31 ?,
32 strftime('%s', 'now'),
33 strftime('%s', 'now')
34) RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
35`
36
37type CreateSessionParams struct {
38 ID string `json:"id"`
39 ParentSessionID sql.NullString `json:"parent_session_id"`
40 Title string `json:"title"`
41 MessageCount int64 `json:"message_count"`
42 PromptTokens int64 `json:"prompt_tokens"`
43 CompletionTokens int64 `json:"completion_tokens"`
44 Cost float64 `json:"cost"`
45}
46
47func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
48 row := q.queryRow(ctx, q.createSessionStmt, createSession,
49 arg.ID,
50 arg.ParentSessionID,
51 arg.Title,
52 arg.MessageCount,
53 arg.PromptTokens,
54 arg.CompletionTokens,
55 arg.Cost,
56 )
57 var i Session
58 err := row.Scan(
59 &i.ID,
60 &i.ParentSessionID,
61 &i.Title,
62 &i.MessageCount,
63 &i.PromptTokens,
64 &i.CompletionTokens,
65 &i.Cost,
66 &i.UpdatedAt,
67 &i.CreatedAt,
68 )
69 return i, err
70}
71
72const deleteSession = `-- name: DeleteSession :exec
73DELETE FROM sessions
74WHERE id = ?
75`
76
77func (q *Queries) DeleteSession(ctx context.Context, id string) error {
78 _, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
79 return err
80}
81
82const getSessionByID = `-- name: GetSessionByID :one
83SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
84FROM sessions
85WHERE id = ? LIMIT 1
86`
87
88func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
89 row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
90 var i Session
91 err := row.Scan(
92 &i.ID,
93 &i.ParentSessionID,
94 &i.Title,
95 &i.MessageCount,
96 &i.PromptTokens,
97 &i.CompletionTokens,
98 &i.Cost,
99 &i.UpdatedAt,
100 &i.CreatedAt,
101 )
102 return i, err
103}
104
105const listSessions = `-- name: ListSessions :many
106SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
107FROM sessions
108WHERE parent_session_id is NULL
109ORDER BY created_at DESC
110`
111
112func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
113 rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
114 if err != nil {
115 return nil, err
116 }
117 defer rows.Close()
118 items := []Session{}
119 for rows.Next() {
120 var i Session
121 if err := rows.Scan(
122 &i.ID,
123 &i.ParentSessionID,
124 &i.Title,
125 &i.MessageCount,
126 &i.PromptTokens,
127 &i.CompletionTokens,
128 &i.Cost,
129 &i.UpdatedAt,
130 &i.CreatedAt,
131 ); err != nil {
132 return nil, err
133 }
134 items = append(items, i)
135 }
136 if err := rows.Close(); err != nil {
137 return nil, err
138 }
139 if err := rows.Err(); err != nil {
140 return nil, err
141 }
142 return items, nil
143}
144
145const updateSession = `-- name: UpdateSession :one
146UPDATE sessions
147SET
148 title = ?,
149 prompt_tokens = ?,
150 completion_tokens = ?,
151 cost = ?
152WHERE id = ?
153RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
154`
155
156type UpdateSessionParams struct {
157 Title string `json:"title"`
158 PromptTokens int64 `json:"prompt_tokens"`
159 CompletionTokens int64 `json:"completion_tokens"`
160 Cost float64 `json:"cost"`
161 ID string `json:"id"`
162}
163
164func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
165 row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
166 arg.Title,
167 arg.PromptTokens,
168 arg.CompletionTokens,
169 arg.Cost,
170 arg.ID,
171 )
172 var i Session
173 err := row.Scan(
174 &i.ID,
175 &i.ParentSessionID,
176 &i.Title,
177 &i.MessageCount,
178 &i.PromptTokens,
179 &i.CompletionTokens,
180 &i.Cost,
181 &i.UpdatedAt,
182 &i.CreatedAt,
183 )
184 return i, err
185}