Files
agentic-coding-workflow/internal/infra/notify/queries/notifications.sql
T

23 lines
766 B
SQL

-- name: InsertNotification :exec
INSERT INTO notifications (id, user_id, topic, severity, title, body, link, metadata, created_at)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9);
-- name: ListNotificationsByUser :many
SELECT id, user_id, topic, severity, title, body, link, metadata, read_at, created_at
FROM notifications
WHERE user_id = $1
AND ($2::bool = false OR read_at IS NULL)
ORDER BY created_at DESC
LIMIT $3;
-- name: CountUnreadByUser :one
SELECT COUNT(*)::int FROM notifications WHERE user_id = $1 AND read_at IS NULL;
-- name: MarkRead :exec
UPDATE notifications SET read_at = now()
WHERE id = $1 AND user_id = $2 AND read_at IS NULL;
-- name: MarkAllReadByUser :exec
UPDATE notifications SET read_at = now()
WHERE user_id = $1 AND read_at IS NULL;