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 created_at,
23 updated_at
24) VALUES (
25 ?, ?, ?, ?, ?, ?, ?, strftime('%s', 'now'), strftime('%s', 'now')
26)
27RETURNING id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
28`
29
30type CreateMessageParams struct {
31 ID string `json:"id"`
32 SessionID string `json:"session_id"`
33 Role string `json:"role"`
34 Parts string `json:"parts"`
35 Model sql.NullString `json:"model"`
36 Provider sql.NullString `json:"provider"`
37 IsSummaryMessage int64 `json:"is_summary_message"`
38}
39
40func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
41 row := q.queryRow(ctx, q.createMessageStmt, createMessage,
42 arg.ID,
43 arg.SessionID,
44 arg.Role,
45 arg.Parts,
46 arg.Model,
47 arg.Provider,
48 arg.IsSummaryMessage,
49 )
50 var i Message
51 err := row.Scan(
52 &i.ID,
53 &i.SessionID,
54 &i.Role,
55 &i.Parts,
56 &i.Model,
57 &i.CreatedAt,
58 &i.UpdatedAt,
59 &i.FinishedAt,
60 &i.Provider,
61 &i.IsSummaryMessage,
62 )
63 return i, err
64}
65
66const deleteMessage = `-- name: DeleteMessage :exec
67DELETE FROM messages
68WHERE id = ?
69`
70
71func (q *Queries) DeleteMessage(ctx context.Context, id string) error {
72 _, err := q.exec(ctx, q.deleteMessageStmt, deleteMessage, id)
73 return err
74}
75
76const deleteSessionMessages = `-- name: DeleteSessionMessages :exec
77DELETE FROM messages
78WHERE session_id = ?
79`
80
81func (q *Queries) DeleteSessionMessages(ctx context.Context, sessionID string) error {
82 _, err := q.exec(ctx, q.deleteSessionMessagesStmt, deleteSessionMessages, sessionID)
83 return err
84}
85
86const getMessage = `-- name: GetMessage :one
87SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
88FROM messages
89WHERE id = ? LIMIT 1
90`
91
92func (q *Queries) GetMessage(ctx context.Context, id string) (Message, error) {
93 row := q.queryRow(ctx, q.getMessageStmt, getMessage, id)
94 var i Message
95 err := row.Scan(
96 &i.ID,
97 &i.SessionID,
98 &i.Role,
99 &i.Parts,
100 &i.Model,
101 &i.CreatedAt,
102 &i.UpdatedAt,
103 &i.FinishedAt,
104 &i.Provider,
105 &i.IsSummaryMessage,
106 )
107 return i, err
108}
109
110const listAllMessages = `-- name: ListAllMessages :many
111SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
112FROM messages
113ORDER BY created_at ASC
114`
115
116func (q *Queries) ListAllMessages(ctx context.Context) ([]Message, error) {
117 rows, err := q.query(ctx, q.listAllMessagesStmt, listAllMessages)
118 if err != nil {
119 return nil, err
120 }
121 defer rows.Close()
122 items := []Message{}
123 for rows.Next() {
124 var i Message
125 if err := rows.Scan(
126 &i.ID,
127 &i.SessionID,
128 &i.Role,
129 &i.Parts,
130 &i.Model,
131 &i.CreatedAt,
132 &i.UpdatedAt,
133 &i.FinishedAt,
134 &i.Provider,
135 &i.IsSummaryMessage,
136 ); err != nil {
137 return nil, err
138 }
139 items = append(items, i)
140 }
141 if err := rows.Close(); err != nil {
142 return nil, err
143 }
144 if err := rows.Err(); err != nil {
145 return nil, err
146 }
147 return items, nil
148}
149
150const listMessagesBySession = `-- name: ListMessagesBySession :many
151SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
152FROM messages
153WHERE session_id = ?
154ORDER BY created_at ASC
155`
156
157func (q *Queries) ListMessagesBySession(ctx context.Context, sessionID string) ([]Message, error) {
158 rows, err := q.query(ctx, q.listMessagesBySessionStmt, listMessagesBySession, sessionID)
159 if err != nil {
160 return nil, err
161 }
162 defer rows.Close()
163 items := []Message{}
164 for rows.Next() {
165 var i Message
166 if err := rows.Scan(
167 &i.ID,
168 &i.SessionID,
169 &i.Role,
170 &i.Parts,
171 &i.Model,
172 &i.CreatedAt,
173 &i.UpdatedAt,
174 &i.FinishedAt,
175 &i.Provider,
176 &i.IsSummaryMessage,
177 ); err != nil {
178 return nil, err
179 }
180 items = append(items, i)
181 }
182 if err := rows.Close(); err != nil {
183 return nil, err
184 }
185 if err := rows.Err(); err != nil {
186 return nil, err
187 }
188 return items, nil
189}
190
191const updateMessage = `-- name: UpdateMessage :exec
192UPDATE messages
193SET
194 parts = ?,
195 finished_at = ?,
196 updated_at = strftime('%s', 'now')
197WHERE id = ?
198`
199
200type UpdateMessageParams struct {
201 Parts string `json:"parts"`
202 FinishedAt sql.NullInt64 `json:"finished_at"`
203 ID string `json:"id"`
204}
205
206func (q *Queries) UpdateMessage(ctx context.Context, arg UpdateMessageParams) error {
207 _, err := q.exec(ctx, q.updateMessageStmt, updateMessage, arg.Parts, arg.FinishedAt, arg.ID)
208 return err
209}