feat(chat): sqlc queries for conversations/messages/attachments/templates/endpoints/models/usage

This commit is contained in:
2026-05-04 09:52:06 +08:00
parent ca5a018cd4
commit a1d0fbc3d3
17 changed files with 1929 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
-- name: InsertMessage :one
INSERT INTO messages (conversation_id, role, content, status)
VALUES ($1, $2, $3, $4)
RETURNING *;
-- name: GetMessage :one
SELECT * FROM messages WHERE id = $1;
-- name: ListMessagesByConversation :many
SELECT * FROM messages
WHERE conversation_id = $1
AND ($2::bigint = 0 OR id < $2)
ORDER BY id DESC
LIMIT $3;
-- name: ListMessagesAscending :many
SELECT * FROM messages WHERE conversation_id = $1 ORDER BY id ASC;
-- name: UpdateMessageOK :exec
UPDATE messages
SET content = $2, thinking = $3,
prompt_tokens = $4, completion_tokens = $5, thinking_tokens = $6,
status = 'ok', updated_at = NOW()
WHERE id = $1;
-- name: UpdateMessageError :exec
UPDATE messages
SET status = 'error', error_message = $2, updated_at = NOW()
WHERE id = $1;
-- name: UpdateMessageCancelled :exec
UPDATE messages
SET status = 'cancelled', updated_at = NOW()
WHERE id = $1;
-- name: DeleteMessage :exec
DELETE FROM messages WHERE id = $1;
-- name: GetFirstUserMessage :one
SELECT * FROM messages
WHERE conversation_id = $1 AND role = 'user'
ORDER BY id ASC LIMIT 1;
-- name: MarkPendingAsErrorOnStartup :exec
UPDATE messages
SET status = 'error', error_message = 'server restart', updated_at = NOW()
WHERE status = 'pending';