1// Code generated by sqlc. DO NOT EDIT.
2// versions:
3// sqlc v1.30.0
4// source: messages.sql
5
6package generated
7
8import (
9 "context"
10)
11
12const countMessagesByType = `-- name: CountMessagesByType :one
13SELECT COUNT(*) FROM messages
14WHERE conversation_id = ? AND type = ?
15`
16
17type CountMessagesByTypeParams struct {
18 ConversationID string `json:"conversation_id"`
19 Type string `json:"type"`
20}
21
22func (q *Queries) CountMessagesByType(ctx context.Context, arg CountMessagesByTypeParams) (int64, error) {
23 row := q.db.QueryRowContext(ctx, countMessagesByType, arg.ConversationID, arg.Type)
24 var count int64
25 err := row.Scan(&count)
26 return count, err
27}
28
29const countMessagesInConversation = `-- name: CountMessagesInConversation :one
30SELECT COUNT(*) FROM messages
31WHERE conversation_id = ?
32`
33
34func (q *Queries) CountMessagesInConversation(ctx context.Context, conversationID string) (int64, error) {
35 row := q.db.QueryRowContext(ctx, countMessagesInConversation, conversationID)
36 var count int64
37 err := row.Scan(&count)
38 return count, err
39}
40
41const createMessage = `-- name: CreateMessage :one
42INSERT INTO messages (message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, display_data, excluded_from_context)
43VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
44RETURNING message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context
45`
46
47type CreateMessageParams struct {
48 MessageID string `json:"message_id"`
49 ConversationID string `json:"conversation_id"`
50 SequenceID int64 `json:"sequence_id"`
51 Type string `json:"type"`
52 LlmData *string `json:"llm_data"`
53 UserData *string `json:"user_data"`
54 UsageData *string `json:"usage_data"`
55 DisplayData *string `json:"display_data"`
56 ExcludedFromContext bool `json:"excluded_from_context"`
57}
58
59func (q *Queries) CreateMessage(ctx context.Context, arg CreateMessageParams) (Message, error) {
60 row := q.db.QueryRowContext(ctx, createMessage,
61 arg.MessageID,
62 arg.ConversationID,
63 arg.SequenceID,
64 arg.Type,
65 arg.LlmData,
66 arg.UserData,
67 arg.UsageData,
68 arg.DisplayData,
69 arg.ExcludedFromContext,
70 )
71 var i Message
72 err := row.Scan(
73 &i.MessageID,
74 &i.ConversationID,
75 &i.SequenceID,
76 &i.Type,
77 &i.LlmData,
78 &i.UserData,
79 &i.UsageData,
80 &i.CreatedAt,
81 &i.DisplayData,
82 &i.ExcludedFromContext,
83 )
84 return i, err
85}
86
87const deleteConversationMessages = `-- name: DeleteConversationMessages :exec
88DELETE FROM messages
89WHERE conversation_id = ?
90`
91
92func (q *Queries) DeleteConversationMessages(ctx context.Context, conversationID string) error {
93 _, err := q.db.ExecContext(ctx, deleteConversationMessages, conversationID)
94 return err
95}
96
97const deleteMessage = `-- name: DeleteMessage :exec
98DELETE FROM messages
99WHERE message_id = ?
100`
101
102func (q *Queries) DeleteMessage(ctx context.Context, messageID string) error {
103 _, err := q.db.ExecContext(ctx, deleteMessage, messageID)
104 return err
105}
106
107const getLatestMessage = `-- name: GetLatestMessage :one
108SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
109WHERE conversation_id = ?
110ORDER BY sequence_id DESC
111LIMIT 1
112`
113
114func (q *Queries) GetLatestMessage(ctx context.Context, conversationID string) (Message, error) {
115 row := q.db.QueryRowContext(ctx, getLatestMessage, conversationID)
116 var i Message
117 err := row.Scan(
118 &i.MessageID,
119 &i.ConversationID,
120 &i.SequenceID,
121 &i.Type,
122 &i.LlmData,
123 &i.UserData,
124 &i.UsageData,
125 &i.CreatedAt,
126 &i.DisplayData,
127 &i.ExcludedFromContext,
128 )
129 return i, err
130}
131
132const getMessage = `-- name: GetMessage :one
133SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
134WHERE message_id = ?
135`
136
137func (q *Queries) GetMessage(ctx context.Context, messageID string) (Message, error) {
138 row := q.db.QueryRowContext(ctx, getMessage, messageID)
139 var i Message
140 err := row.Scan(
141 &i.MessageID,
142 &i.ConversationID,
143 &i.SequenceID,
144 &i.Type,
145 &i.LlmData,
146 &i.UserData,
147 &i.UsageData,
148 &i.CreatedAt,
149 &i.DisplayData,
150 &i.ExcludedFromContext,
151 )
152 return i, err
153}
154
155const getNextSequenceID = `-- name: GetNextSequenceID :one
156SELECT COALESCE(MAX(sequence_id), 0) + 1
157FROM messages
158WHERE conversation_id = ?
159`
160
161func (q *Queries) GetNextSequenceID(ctx context.Context, conversationID string) (int64, error) {
162 row := q.db.QueryRowContext(ctx, getNextSequenceID, conversationID)
163 var column_1 int64
164 err := row.Scan(&column_1)
165 return column_1, err
166}
167
168const listMessages = `-- name: ListMessages :many
169SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
170WHERE conversation_id = ?
171ORDER BY sequence_id ASC
172`
173
174func (q *Queries) ListMessages(ctx context.Context, conversationID string) ([]Message, error) {
175 rows, err := q.db.QueryContext(ctx, listMessages, conversationID)
176 if err != nil {
177 return nil, err
178 }
179 defer rows.Close()
180 items := []Message{}
181 for rows.Next() {
182 var i Message
183 if err := rows.Scan(
184 &i.MessageID,
185 &i.ConversationID,
186 &i.SequenceID,
187 &i.Type,
188 &i.LlmData,
189 &i.UserData,
190 &i.UsageData,
191 &i.CreatedAt,
192 &i.DisplayData,
193 &i.ExcludedFromContext,
194 ); err != nil {
195 return nil, err
196 }
197 items = append(items, i)
198 }
199 if err := rows.Close(); err != nil {
200 return nil, err
201 }
202 if err := rows.Err(); err != nil {
203 return nil, err
204 }
205 return items, nil
206}
207
208const listMessagesByType = `-- name: ListMessagesByType :many
209SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
210WHERE conversation_id = ? AND type = ?
211ORDER BY sequence_id ASC
212`
213
214type ListMessagesByTypeParams struct {
215 ConversationID string `json:"conversation_id"`
216 Type string `json:"type"`
217}
218
219func (q *Queries) ListMessagesByType(ctx context.Context, arg ListMessagesByTypeParams) ([]Message, error) {
220 rows, err := q.db.QueryContext(ctx, listMessagesByType, arg.ConversationID, arg.Type)
221 if err != nil {
222 return nil, err
223 }
224 defer rows.Close()
225 items := []Message{}
226 for rows.Next() {
227 var i Message
228 if err := rows.Scan(
229 &i.MessageID,
230 &i.ConversationID,
231 &i.SequenceID,
232 &i.Type,
233 &i.LlmData,
234 &i.UserData,
235 &i.UsageData,
236 &i.CreatedAt,
237 &i.DisplayData,
238 &i.ExcludedFromContext,
239 ); err != nil {
240 return nil, err
241 }
242 items = append(items, i)
243 }
244 if err := rows.Close(); err != nil {
245 return nil, err
246 }
247 if err := rows.Err(); err != nil {
248 return nil, err
249 }
250 return items, nil
251}
252
253const listMessagesForContext = `-- name: ListMessagesForContext :many
254SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
255WHERE conversation_id = ? AND excluded_from_context = FALSE
256ORDER BY sequence_id ASC
257`
258
259func (q *Queries) ListMessagesForContext(ctx context.Context, conversationID string) ([]Message, error) {
260 rows, err := q.db.QueryContext(ctx, listMessagesForContext, conversationID)
261 if err != nil {
262 return nil, err
263 }
264 defer rows.Close()
265 items := []Message{}
266 for rows.Next() {
267 var i Message
268 if err := rows.Scan(
269 &i.MessageID,
270 &i.ConversationID,
271 &i.SequenceID,
272 &i.Type,
273 &i.LlmData,
274 &i.UserData,
275 &i.UsageData,
276 &i.CreatedAt,
277 &i.DisplayData,
278 &i.ExcludedFromContext,
279 ); err != nil {
280 return nil, err
281 }
282 items = append(items, i)
283 }
284 if err := rows.Close(); err != nil {
285 return nil, err
286 }
287 if err := rows.Err(); err != nil {
288 return nil, err
289 }
290 return items, nil
291}
292
293const listMessagesPaginated = `-- name: ListMessagesPaginated :many
294SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
295WHERE conversation_id = ?
296ORDER BY sequence_id ASC
297LIMIT ? OFFSET ?
298`
299
300type ListMessagesPaginatedParams struct {
301 ConversationID string `json:"conversation_id"`
302 Limit int64 `json:"limit"`
303 Offset int64 `json:"offset"`
304}
305
306func (q *Queries) ListMessagesPaginated(ctx context.Context, arg ListMessagesPaginatedParams) ([]Message, error) {
307 rows, err := q.db.QueryContext(ctx, listMessagesPaginated, arg.ConversationID, arg.Limit, arg.Offset)
308 if err != nil {
309 return nil, err
310 }
311 defer rows.Close()
312 items := []Message{}
313 for rows.Next() {
314 var i Message
315 if err := rows.Scan(
316 &i.MessageID,
317 &i.ConversationID,
318 &i.SequenceID,
319 &i.Type,
320 &i.LlmData,
321 &i.UserData,
322 &i.UsageData,
323 &i.CreatedAt,
324 &i.DisplayData,
325 &i.ExcludedFromContext,
326 ); err != nil {
327 return nil, err
328 }
329 items = append(items, i)
330 }
331 if err := rows.Close(); err != nil {
332 return nil, err
333 }
334 if err := rows.Err(); err != nil {
335 return nil, err
336 }
337 return items, nil
338}
339
340const listMessagesSince = `-- name: ListMessagesSince :many
341SELECT message_id, conversation_id, sequence_id, type, llm_data, user_data, usage_data, created_at, display_data, excluded_from_context FROM messages
342WHERE conversation_id = ? AND sequence_id > ?
343ORDER BY sequence_id ASC
344`
345
346type ListMessagesSinceParams struct {
347 ConversationID string `json:"conversation_id"`
348 SequenceID int64 `json:"sequence_id"`
349}
350
351func (q *Queries) ListMessagesSince(ctx context.Context, arg ListMessagesSinceParams) ([]Message, error) {
352 rows, err := q.db.QueryContext(ctx, listMessagesSince, arg.ConversationID, arg.SequenceID)
353 if err != nil {
354 return nil, err
355 }
356 defer rows.Close()
357 items := []Message{}
358 for rows.Next() {
359 var i Message
360 if err := rows.Scan(
361 &i.MessageID,
362 &i.ConversationID,
363 &i.SequenceID,
364 &i.Type,
365 &i.LlmData,
366 &i.UserData,
367 &i.UsageData,
368 &i.CreatedAt,
369 &i.DisplayData,
370 &i.ExcludedFromContext,
371 ); err != nil {
372 return nil, err
373 }
374 items = append(items, i)
375 }
376 if err := rows.Close(); err != nil {
377 return nil, err
378 }
379 if err := rows.Err(); err != nil {
380 return nil, err
381 }
382 return items, nil
383}