1// Code generated by sqlc. DO NOT EDIT.
2// versions:
3// sqlc v1.29.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
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 )
72 return i, err
73}
74
75const deleteSession = `-- name: DeleteSession :exec
76DELETE FROM sessions
77WHERE id = ?
78`
79
80func (q *Queries) DeleteSession(ctx context.Context, id string) error {
81 _, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
82 return err
83}
84
85const getSessionByID = `-- name: GetSessionByID :one
86SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id
87FROM sessions
88WHERE id = ? LIMIT 1
89`
90
91func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
92 row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
93 var i Session
94 err := row.Scan(
95 &i.ID,
96 &i.ParentSessionID,
97 &i.Title,
98 &i.MessageCount,
99 &i.PromptTokens,
100 &i.CompletionTokens,
101 &i.Cost,
102 &i.UpdatedAt,
103 &i.CreatedAt,
104 &i.SummaryMessageID,
105 )
106 return i, err
107}
108
109const listSessions = `-- name: ListSessions :many
110SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id
111FROM sessions
112WHERE parent_session_id is NULL
113ORDER BY created_at DESC
114`
115
116func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
117 rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
118 if err != nil {
119 return nil, err
120 }
121 defer rows.Close()
122 items := []Session{}
123 for rows.Next() {
124 var i Session
125 if err := rows.Scan(
126 &i.ID,
127 &i.ParentSessionID,
128 &i.Title,
129 &i.MessageCount,
130 &i.PromptTokens,
131 &i.CompletionTokens,
132 &i.Cost,
133 &i.UpdatedAt,
134 &i.CreatedAt,
135 &i.SummaryMessageID,
136 ); err != nil {
137 return nil, err
138 }
139 items = append(items, i)
140 }
141 if err := rows.Close(); err != nil {
142 return nil, err
143 }
144 if err := rows.Err(); err != nil {
145 return nil, err
146 }
147 return items, nil
148}
149
150const updateSession = `-- name: UpdateSession :one
151UPDATE sessions
152SET
153 title = ?,
154 prompt_tokens = ?,
155 completion_tokens = ?,
156 summary_message_id = ?,
157 cost = ?
158WHERE id = ?
159RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id
160`
161
162type UpdateSessionParams struct {
163 Title string `json:"title"`
164 PromptTokens int64 `json:"prompt_tokens"`
165 CompletionTokens int64 `json:"completion_tokens"`
166 SummaryMessageID sql.NullString `json:"summary_message_id"`
167 Cost float64 `json:"cost"`
168 ID string `json:"id"`
169}
170
171func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
172 row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
173 arg.Title,
174 arg.PromptTokens,
175 arg.CompletionTokens,
176 arg.SummaryMessageID,
177 arg.Cost,
178 arg.ID,
179 )
180 var i Session
181 err := row.Scan(
182 &i.ID,
183 &i.ParentSessionID,
184 &i.Title,
185 &i.MessageCount,
186 &i.PromptTokens,
187 &i.CompletionTokens,
188 &i.Cost,
189 &i.UpdatedAt,
190 &i.CreatedAt,
191 &i.SummaryMessageID,
192 )
193 return i, err
194}