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
 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}