22 lines
923 B
SQL
22 lines
923 B
SQL
-- name: CreateNotification :one
|
|
INSERT INTO notifications (
|
|
id, recipient_id, type, level, error_severity, reciever, is_read, delivery_status, delivery_channel, payload, priority, timestamp, metadata
|
|
) VALUES (
|
|
$1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13
|
|
) RETURNING *;
|
|
|
|
-- name: GetNotification :one
|
|
SELECT * FROM notifications WHERE id = $1 LIMIT 1;
|
|
|
|
-- name: ListNotifications :many
|
|
SELECT * FROM notifications WHERE recipient_id = $1 ORDER BY timestamp DESC LIMIT $2 OFFSET $3;
|
|
|
|
-- name: UpdateNotificationStatus :one
|
|
UPDATE notifications SET delivery_status = $2, is_read = $3, metadata = $4 WHERE id = $1 RETURNING *;
|
|
|
|
-- name: ListFailedNotifications :many
|
|
SELECT * FROM notifications WHERE delivery_status = 'failed' AND timestamp < NOW() - INTERVAL '1 hour' ORDER BY timestamp ASC LIMIT $1;
|
|
|
|
-- name: ListRecipientIDsByReceiver :many
|
|
SELECT recipient_id FROM notifications WHERE reciever = $1;
|