messages.sql.go

  1// Code generated by sqlc. DO NOT EDIT.
  2// versions:
  3//   sqlc v1.30.0
  4// source: messages.sql
  5
  6package db
  7
  8import (
  9	"context"
 10	"database/sql"
 11)
 12
 13const createMessage = `-- name: CreateMessage :one
 14INSERT INTO messages (
 15    id,
 16    session_id,
 17    role,
 18    parts,
 19    model,
 20    provider,
 21    is_summary_message,
 22    metadata,
 23    created_at,
 24    updated_at
 25) VALUES (
 26    ?, ?, ?, ?, ?, ?, ?, ?, strftime('%s', 'now'), strftime('%s', 'now')
 27)
 28RETURNING id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message, metadata
 29`
 30
 31type CreateMessageParams struct {
 32	ID               string         `json:"id"`
 33	SessionID        string         `json:"session_id"`
 34	Role             string         `json:"role"`
 35	Parts            string         `json:"parts"`
 36	Model            sql.NullString `json:"model"`
 37	Provider         sql.NullString `json:"provider"`
 38	IsSummaryMessage int64          `json:"is_summary_message"`
 39	Metadata         string         `json:"metadata"`
 40}
 41
 42func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
 43	row := q.queryRow(ctx, q.createMessageStmt, createMessage,
 44		arg.ID,
 45		arg.SessionID,
 46		arg.Role,
 47		arg.Parts,
 48		arg.Model,
 49		arg.Provider,
 50		arg.IsSummaryMessage,
 51		arg.Metadata,
 52	)
 53	var i Message
 54	err := row.Scan(
 55		&i.ID,
 56		&i.SessionID,
 57		&i.Role,
 58		&i.Parts,
 59		&i.Model,
 60		&i.CreatedAt,
 61		&i.UpdatedAt,
 62		&i.FinishedAt,
 63		&i.Provider,
 64		&i.IsSummaryMessage,
 65		&i.Metadata,
 66	)
 67	return i, err
 68}
 69
 70const deleteMessage = `-- name: DeleteMessage :exec
 71DELETE FROM messages
 72WHERE id = ?
 73`
 74
 75func (q *Queries) DeleteMessage(ctx context.Context, id string) error {
 76	_, err := q.exec(ctx, q.deleteMessageStmt, deleteMessage, id)
 77	return err
 78}
 79
 80const deleteSessionMessages = `-- name: DeleteSessionMessages :exec
 81DELETE FROM messages
 82WHERE session_id = ?
 83`
 84
 85func (q *Queries) DeleteSessionMessages(ctx context.Context, sessionID string) error {
 86	_, err := q.exec(ctx, q.deleteSessionMessagesStmt, deleteSessionMessages, sessionID)
 87	return err
 88}
 89
 90const getMessage = `-- name: GetMessage :one
 91SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message, metadata
 92FROM messages
 93WHERE id = ? LIMIT 1
 94`
 95
 96func (q *Queries) GetMessage(ctx context.Context, id string) (Message, error) {
 97	row := q.queryRow(ctx, q.getMessageStmt, getMessage, id)
 98	var i Message
 99	err := row.Scan(
100		&i.ID,
101		&i.SessionID,
102		&i.Role,
103		&i.Parts,
104		&i.Model,
105		&i.CreatedAt,
106		&i.UpdatedAt,
107		&i.FinishedAt,
108		&i.Provider,
109		&i.IsSummaryMessage,
110		&i.Metadata,
111	)
112	return i, err
113}
114
115const listMessagesBySession = `-- name: ListMessagesBySession :many
116SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message, metadata
117FROM messages
118WHERE session_id = ?
119ORDER BY created_at ASC
120`
121
122func (q *Queries) ListMessagesBySession(ctx context.Context, sessionID string) ([]Message, error) {
123	rows, err := q.query(ctx, q.listMessagesBySessionStmt, listMessagesBySession, sessionID)
124	if err != nil {
125		return nil, err
126	}
127	defer rows.Close()
128	items := []Message{}
129	for rows.Next() {
130		var i Message
131		if err := rows.Scan(
132			&i.ID,
133			&i.SessionID,
134			&i.Role,
135			&i.Parts,
136			&i.Model,
137			&i.CreatedAt,
138			&i.UpdatedAt,
139			&i.FinishedAt,
140			&i.Provider,
141			&i.IsSummaryMessage,
142			&i.Metadata,
143		); err != nil {
144			return nil, err
145		}
146		items = append(items, i)
147	}
148	if err := rows.Close(); err != nil {
149		return nil, err
150	}
151	if err := rows.Err(); err != nil {
152		return nil, err
153	}
154	return items, nil
155}
156
157const updateMessage = `-- name: UpdateMessage :exec
158UPDATE messages
159SET
160    parts = ?,
161    metadata = ?,
162    finished_at = ?,
163    updated_at = strftime('%s', 'now')
164WHERE id = ?
165`
166
167type UpdateMessageParams struct {
168	Parts      string        `json:"parts"`
169	Metadata   string        `json:"metadata"`
170	FinishedAt sql.NullInt64 `json:"finished_at"`
171	ID         string        `json:"id"`
172}
173
174func (q *Queries) UpdateMessage(ctx context.Context, arg UpdateMessageParams) error {
175	_, err := q.exec(ctx, q.updateMessageStmt, updateMessage,
176		arg.Parts,
177		arg.Metadata,
178		arg.FinishedAt,
179		arg.ID,
180	)
181	return err
182}