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