mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-27 21:33:41 +02:00
* fix(notifications): make preference updates atomic Co-authored-by: multica-agent <github@multica.ai> * fix(notifications): serialize preference mutations Co-authored-by: multica-agent <github@multica.ai> --------- Co-authored-by: Lambda <lambda@multica.ai> Co-authored-by: multica-agent <github@multica.ai>
24 lines
820 B
SQL
24 lines
820 B
SQL
-- name: GetNotificationPreference :one
|
|
SELECT * FROM notification_preference
|
|
WHERE workspace_id = $1 AND user_id = $2;
|
|
|
|
-- name: UpsertNotificationPreference :one
|
|
INSERT INTO notification_preference (workspace_id, user_id, preferences)
|
|
VALUES ($1, $2, $3)
|
|
ON CONFLICT (workspace_id, user_id)
|
|
DO UPDATE SET preferences = $3, updated_at = now()
|
|
RETURNING *;
|
|
|
|
-- name: PatchNotificationPreference :one
|
|
INSERT INTO notification_preference (workspace_id, user_id, preferences)
|
|
VALUES ($1, $2, $3)
|
|
ON CONFLICT (workspace_id, user_id)
|
|
DO UPDATE SET
|
|
preferences = notification_preference.preferences || EXCLUDED.preferences,
|
|
updated_at = now()
|
|
RETURNING *;
|
|
|
|
-- name: ListNotificationPreferencesByUsers :many
|
|
SELECT * FROM notification_preference
|
|
WHERE workspace_id = $1 AND user_id = ANY(sqlc.arg('user_ids')::uuid[]);
|