sessions.sql.go

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