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