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