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