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