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