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 updateSession = `-- name: UpdateSession :one
154UPDATE sessions
155SET
156    title = ?,
157    prompt_tokens = ?,
158    completion_tokens = ?,
159    summary_message_id = ?,
160    cost = ?,
161    todos = ?
162WHERE id = ?
163RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary_message_id, todos
164`
165
166type UpdateSessionParams struct {
167	Title            string         `json:"title"`
168	PromptTokens     int64          `json:"prompt_tokens"`
169	CompletionTokens int64          `json:"completion_tokens"`
170	SummaryMessageID sql.NullString `json:"summary_message_id"`
171	Cost             float64        `json:"cost"`
172	Todos            sql.NullString `json:"todos"`
173	ID               string         `json:"id"`
174}
175
176func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
177	row := q.queryRow(ctx, q.updateSessionStmt, updateSession,
178		arg.Title,
179		arg.PromptTokens,
180		arg.CompletionTokens,
181		arg.SummaryMessageID,
182		arg.Cost,
183		arg.Todos,
184		arg.ID,
185	)
186	var i Session
187	err := row.Scan(
188		&i.ID,
189		&i.ParentSessionID,
190		&i.Title,
191		&i.MessageCount,
192		&i.PromptTokens,
193		&i.CompletionTokens,
194		&i.Cost,
195		&i.UpdatedAt,
196		&i.CreatedAt,
197		&i.SummaryMessageID,
198		&i.Todos,
199	)
200	return i, err
201}