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 listMessagesBySession = `-- name: ListMessagesBySession :many
111SELECT id, session_id, role, parts, model, created_at, updated_at, finished_at, provider, is_summary_message
112FROM messages
113WHERE session_id = ?
114ORDER BY created_at ASC
115`
116
117func (q *Queries) ListMessagesBySession(ctx context.Context, sessionID string) ([]Message, error) {
118 rows, err := q.query(ctx, q.listMessagesBySessionStmt, listMessagesBySession, sessionID)
119 if err != nil {
120 return nil, err
121 }
122 defer rows.Close()
123 items := []Message{}
124 for rows.Next() {
125 var i Message
126 if err := rows.Scan(
127 &i.ID,
128 &i.SessionID,
129 &i.Role,
130 &i.Parts,
131 &i.Model,
132 &i.CreatedAt,
133 &i.UpdatedAt,
134 &i.FinishedAt,
135 &i.Provider,
136 &i.IsSummaryMessage,
137 ); err != nil {
138 return nil, err
139 }
140 items = append(items, i)
141 }
142 if err := rows.Close(); err != nil {
143 return nil, err
144 }
145 if err := rows.Err(); err != nil {
146 return nil, err
147 }
148 return items, nil
149}
150
151const updateMessage = `-- name: UpdateMessage :exec
152UPDATE messages
153SET
154 parts = ?,
155 finished_at = ?,
156 updated_at = strftime('%s', 'now')
157WHERE id = ?
158`
159
160type UpdateMessageParams struct {
161 Parts string `json:"parts"`
162 FinishedAt sql.NullInt64 `json:"finished_at"`
163 ID string `json:"id"`
164}
165
166func (q *Queries) UpdateMessage(ctx context.Context, arg UpdateMessageParams) error {
167 _, err := q.exec(ctx, q.updateMessageStmt, updateMessage, arg.Parts, arg.FinishedAt, arg.ID)
168 return err
169}