1// Code generated by sqlc. DO NOT EDIT.
2// versions:
3// sqlc v1.30.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 summary_message_id,
23 updated_at,
24 created_at
25) VALUES (
26 ?,
27 ?,
28 ?,
29 ?,
30 ?,
31 ?,
32 ?,
33 null,
34 strftime('%s', 'now'),
35 strftime('%s', 'now')
36) RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
37`
38
39type CreateSessionParams struct {
40 ID string `json:"id"`
41 ParentSessionID sql.NullString `json:"parent_session_id"`
42 Title string `json:"title"`
43 MessageCount int64 `json:"message_count"`
44 PromptTokens int64 `json:"prompt_tokens"`
45 CompletionTokens int64 `json:"completion_tokens"`
46 Cost float64 `json:"cost"`
47}
48
49func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
50 row := q.queryRow(ctx, q.createSessionStmt, createSession,
51 arg.ID,
52 arg.ParentSessionID,
53 arg.Title,
54 arg.MessageCount,
55 arg.PromptTokens,
56 arg.CompletionTokens,
57 arg.Cost,
58 )
59 var i Session
60 err := row.Scan(
61 &i.ID,
62 &i.ParentSessionID,
63 &i.Title,
64 &i.MessageCount,
65 &i.PromptTokens,
66 &i.CompletionTokens,
67 &i.Cost,
68 &i.UpdatedAt,
69 &i.CreatedAt,
70 &i.SummaryMessageID,
71 &i.Todos,
72 )
73 return i, err
74}
75
76const deleteSession = `-- name: DeleteSession :exec
77DELETE FROM sessions
78WHERE id = ?
79`
80
81func (q *Queries) DeleteSession(ctx context.Context, id string) error {
82 _, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
83 return err
84}
85
86const getSessionByID = `-- name: GetSessionByID :one
87SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
88FROM sessions
89WHERE id = ? LIMIT 1
90`
91
92func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
93 row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
94 var i Session
95 err := row.Scan(
96 &i.ID,
97 &i.ParentSessionID,
98 &i.Title,
99 &i.MessageCount,
100 &i.PromptTokens,
101 &i.CompletionTokens,
102 &i.Cost,
103 &i.UpdatedAt,
104 &i.CreatedAt,
105 &i.SummaryMessageID,
106 &i.Todos,
107 )
108 return i, err
109}
110
111const listSessions = `-- name: ListSessions :many
112SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
113FROM sessions
114WHERE parent_session_id is NULL
115ORDER BY updated_at DESC
116`
117
118func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
119 rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
120 if err != nil {
121 return nil, err
122 }
123 defer rows.Close()
124 items := []Session{}
125 for rows.Next() {
126 var i Session
127 if err := rows.Scan(
128 &i.ID,
129 &i.ParentSessionID,
130 &i.Title,
131 &i.MessageCount,
132 &i.PromptTokens,
133 &i.CompletionTokens,
134 &i.Cost,
135 &i.UpdatedAt,
136 &i.CreatedAt,
137 &i.SummaryMessageID,
138 &i.Todos,
139 ); err != nil {
140 return nil, err
141 }
142 items = append(items, i)
143 }
144 if err := rows.Close(); err != nil {
145 return nil, err
146 }
147 if err := rows.Err(); err != nil {
148 return nil, err
149 }
150 return items, nil
151}
152
153const renameSession = `-- name: RenameSession :exec
154UPDATE sessions
155SET
156 title = ?
157WHERE id = ?
158`
159
160type RenameSessionParams struct {
161 Title string `json:"title"`
162 ID string `json:"id"`
163}
164
165func (q *Queries) RenameSession(ctx context.Context, arg RenameSessionParams) error {
166 _, err := q.exec(ctx, q.renameSessionStmt, renameSession, arg.Title, arg.ID)
167 return err
168}
169
170const updateSession = `-- name: UpdateSession :one
171UPDATE sessions
172SET
173 title = ?,
174 prompt_tokens = ?,
175 completion_tokens = ?,
176 summary_message_id = ?,
177 cost = ?,
178 todos = ?
179WHERE id = ?
180RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
181`
182
183type UpdateSessionParams struct {
184 Title string `json:"title"`
185 PromptTokens int64 `json:"prompt_tokens"`
186 CompletionTokens int64 `json:"completion_tokens"`
187 SummaryMessageID sql.NullString `json:"summary_message_id"`
188 Cost float64 `json:"cost"`
189 Todos sql.NullString `json:"todos"`
190 ID string `json:"id"`
191}
192
193func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
194 row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
195 arg.Title,
196 arg.PromptTokens,
197 arg.CompletionTokens,
198 arg.SummaryMessageID,
199 arg.Cost,
200 arg.Todos,
201 arg.ID,
202 )
203 var i Session
204 err := row.Scan(
205 &i.ID,
206 &i.ParentSessionID,
207 &i.Title,
208 &i.MessageCount,
209 &i.PromptTokens,
210 &i.CompletionTokens,
211 &i.Cost,
212 &i.UpdatedAt,
213 &i.CreatedAt,
214 &i.SummaryMessageID,
215 &i.Todos,
216 )
217 return i, err
218}
219
220const updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec
221UPDATE sessions
222SET
223 title = ?,
224 prompt_tokens = prompt_tokens + ?,
225 completion_tokens = completion_tokens + ?,
226 cost = cost + ?,
227 updated_at = strftime('%s', 'now')
228WHERE id = ?
229`
230
231type UpdateSessionTitleAndUsageParams struct {
232 Title string `json:"title"`
233 PromptTokens int64 `json:"prompt_tokens"`
234 CompletionTokens int64 `json:"completion_tokens"`
235 Cost float64 `json:"cost"`
236 ID string `json:"id"`
237}
238
239func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg UpdateSessionTitleAndUsageParams) error {
240 _, err := q.exec(ctx, q.updateSessionTitleAndUsageStmt, updateSessionTitleAndUsage,
241 arg.Title,
242 arg.PromptTokens,
243 arg.CompletionTokens,
244 arg.Cost,
245 arg.ID,
246 )
247 return err
248}