sessions.sql.go

  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, models
 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		&i.Models,
 73	)
 74	return i, err
 75}
 76
 77const deleteSession = `-- name: DeleteSession :exec
 78DELETE FROM sessions
 79WHERE id = ?
 80`
 81
 82func (q *Queries) DeleteSession(ctx context.Context, id string) error {
 83	_, err := q.exec(ctx, q.deleteSessionStmt, deleteSession, id)
 84	return err
 85}
 86
 87const getLastSession = `-- name: GetLastSession :one
 88SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
 89FROM sessions
 90ORDER BY updated_at DESC
 91LIMIT 1
 92`
 93
 94func (q *Queries) GetLastSession(ctx context.Context) (Session, error) {
 95	row := q.queryRow(ctx, q.getLastSessionStmt, getLastSession)
 96	var i Session
 97	err := row.Scan(
 98		&i.ID,
 99		&i.ParentSessionID,
100		&i.Title,
101		&i.MessageCount,
102		&i.PromptTokens,
103		&i.CompletionTokens,
104		&i.Cost,
105		&i.UpdatedAt,
106		&i.CreatedAt,
107		&i.SummaryMessageID,
108		&i.Todos,
109		&i.Models,
110	)
111	return i, err
112}
113
114const getSessionByID = `-- name: GetSessionByID :one
115SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
116FROM sessions
117WHERE id = ? LIMIT 1
118`
119
120func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error) {
121	row := q.queryRow(ctx, q.getSessionByIDStmt, getSessionByID, id)
122	var i Session
123	err := row.Scan(
124		&i.ID,
125		&i.ParentSessionID,
126		&i.Title,
127		&i.MessageCount,
128		&i.PromptTokens,
129		&i.CompletionTokens,
130		&i.Cost,
131		&i.UpdatedAt,
132		&i.CreatedAt,
133		&i.SummaryMessageID,
134		&i.Todos,
135		&i.Models,
136	)
137	return i, err
138}
139
140const listSessions = `-- name: ListSessions :many
141SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
142FROM sessions
143WHERE parent_session_id is NULL
144ORDER BY updated_at DESC
145`
146
147func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
148	rows, err := q.query(ctx, q.listSessionsStmt, listSessions)
149	if err != nil {
150		return nil, err
151	}
152	defer rows.Close()
153	items := []Session{}
154	for rows.Next() {
155		var i Session
156		if err := rows.Scan(
157			&i.ID,
158			&i.ParentSessionID,
159			&i.Title,
160			&i.MessageCount,
161			&i.PromptTokens,
162			&i.CompletionTokens,
163			&i.Cost,
164			&i.UpdatedAt,
165			&i.CreatedAt,
166			&i.SummaryMessageID,
167			&i.Todos,
168			&i.Models,
169		); err != nil {
170			return nil, err
171		}
172		items = append(items, i)
173	}
174	if err := rows.Close(); err != nil {
175		return nil, err
176	}
177	if err := rows.Err(); err != nil {
178		return nil, err
179	}
180	return items, nil
181}
182
183const renameSession = `-- name: RenameSession :exec
184UPDATE sessions
185SET
186    title = ?
187WHERE id = ?
188`
189
190type RenameSessionParams struct {
191	Title string `json:"title"`
192	ID    string `json:"id"`
193}
194
195func (q *Queries) RenameSession(ctx context.Context, arg RenameSessionParams) error {
196	_, err := q.exec(ctx, q.renameSessionStmt, renameSession, arg.Title, arg.ID)
197	return err
198}
199
200const updateSession = `-- name: UpdateSession :one
201UPDATE sessions
202SET
203    title = ?,
204    prompt_tokens = ?,
205    completion_tokens = ?,
206    summary_message_id = ?,
207    cost = ?,
208    todos = ?
209WHERE id = ?
210RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
211`
212
213type UpdateSessionParams struct {
214	Title            string         `json:"title"`
215	PromptTokens     int64          `json:"prompt_tokens"`
216	CompletionTokens int64          `json:"completion_tokens"`
217	SummaryMessageID sql.NullString `json:"summary_message_id"`
218	Cost             float64        `json:"cost"`
219	Todos            sql.NullString `json:"todos"`
220	ID               string         `json:"id"`
221}
222
223func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
224	row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
225		arg.Title,
226		arg.PromptTokens,
227		arg.CompletionTokens,
228		arg.SummaryMessageID,
229		arg.Cost,
230		arg.Todos,
231		arg.ID,
232	)
233	var i Session
234	err := row.Scan(
235		&i.ID,
236		&i.ParentSessionID,
237		&i.Title,
238		&i.MessageCount,
239		&i.PromptTokens,
240		&i.CompletionTokens,
241		&i.Cost,
242		&i.UpdatedAt,
243		&i.CreatedAt,
244		&i.SummaryMessageID,
245		&i.Todos,
246		&i.Models,
247	)
248	return i, err
249}
250
251const updateSessionModels = `-- name: UpdateSessionModels :one
252UPDATE sessions
253SET models = ?
254WHERE id = ?
255RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos, models
256`
257
258type UpdateSessionModelsParams struct {
259	Models sql.NullString `json:"models"`
260	ID     string         `json:"id"`
261}
262
263func (q *Queries) UpdateSessionModels(ctx context.Context, arg UpdateSessionModelsParams) (Session, error) {
264	row := q.queryRow(ctx, q.updateSessionModelsStmt, updateSessionModels, arg.Models, arg.ID)
265	var i Session
266	err := row.Scan(
267		&i.ID,
268		&i.ParentSessionID,
269		&i.Title,
270		&i.MessageCount,
271		&i.PromptTokens,
272		&i.CompletionTokens,
273		&i.Cost,
274		&i.UpdatedAt,
275		&i.CreatedAt,
276		&i.SummaryMessageID,
277		&i.Todos,
278		&i.Models,
279	)
280	return i, err
281}
282
283const updateSessionTitleAndUsage = `-- name: UpdateSessionTitleAndUsage :exec
284UPDATE sessions
285SET
286    title = ?,
287    prompt_tokens = prompt_tokens + ?,
288    completion_tokens = completion_tokens + ?,
289    cost = cost + ?,
290    updated_at = strftime('%s', 'now')
291WHERE id = ?
292`
293
294type UpdateSessionTitleAndUsageParams struct {
295	Title            string  `json:"title"`
296	PromptTokens     int64   `json:"prompt_tokens"`
297	CompletionTokens int64   `json:"completion_tokens"`
298	Cost             float64 `json:"cost"`
299	ID               string  `json:"id"`
300}
301
302func (q *Queries) UpdateSessionTitleAndUsage(ctx context.Context, arg UpdateSessionTitleAndUsageParams) error {
303	_, err := q.exec(ctx, q.updateSessionTitleAndUsageStmt, updateSessionTitleAndUsage,
304		arg.Title,
305		arg.PromptTokens,
306		arg.CompletionTokens,
307		arg.Cost,
308		arg.ID,
309	)
310	return err
311}