mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
feat: bot inbox (#77)
* feat: bot inbox * feat: unified header * fix: missing tool_call usage * feat: add group name in header
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
-- name: CreateInboxItem :one
|
||||
INSERT INTO bot_inbox (bot_id, source, content)
|
||||
VALUES (sqlc.arg(bot_id), sqlc.arg(source), sqlc.arg(content))
|
||||
RETURNING *;
|
||||
|
||||
-- name: GetInboxItemByID :one
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE id = sqlc.arg(id)
|
||||
AND bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: ListInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND (sqlc.narg(is_read)::boolean IS NULL OR is_read = sqlc.narg(is_read)::boolean)
|
||||
AND (sqlc.narg(source)::text IS NULL OR source = sqlc.narg(source)::text)
|
||||
ORDER BY created_at DESC
|
||||
LIMIT sqlc.arg(max_count)
|
||||
OFFSET sqlc.arg(item_offset);
|
||||
|
||||
-- name: ListUnreadInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND is_read = FALSE
|
||||
ORDER BY created_at ASC
|
||||
LIMIT sqlc.arg(max_count);
|
||||
|
||||
-- name: MarkInboxItemsRead :exec
|
||||
UPDATE bot_inbox
|
||||
SET is_read = TRUE,
|
||||
read_at = now()
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND id = ANY(sqlc.arg(ids)::uuid[])
|
||||
AND is_read = FALSE;
|
||||
|
||||
-- name: SearchInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND content::text ILIKE '%' || sqlc.arg(query) || '%'
|
||||
AND (sqlc.narg(start_time)::timestamptz IS NULL OR created_at >= sqlc.narg(start_time)::timestamptz)
|
||||
AND (sqlc.narg(end_time)::timestamptz IS NULL OR created_at <= sqlc.narg(end_time)::timestamptz)
|
||||
AND (sqlc.narg(include_read)::boolean IS NULL OR sqlc.narg(include_read)::boolean = TRUE OR is_read = FALSE)
|
||||
ORDER BY created_at DESC
|
||||
LIMIT sqlc.arg(max_count);
|
||||
|
||||
-- name: CountUnreadInboxItems :one
|
||||
SELECT count(*) FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND is_read = FALSE;
|
||||
|
||||
-- name: CountInboxItems :one
|
||||
SELECT count(*) FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: DeleteInboxItem :exec
|
||||
DELETE FROM bot_inbox
|
||||
WHERE id = sqlc.arg(id)
|
||||
AND bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: DeleteInboxItemsByBot :exec
|
||||
DELETE FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id);
|
||||
Reference in New Issue
Block a user