Enshi/enshi_back/db/queries/badge_queries.sql
2025-02-04 21:33:08 +03:00

61 lines
1022 B
SQL

-- name: InsertBadge :one
INSERT INTO public.badges (id, name, description, color)
VALUES
(
uuid_generate_v4(),
$1,
$2,
$3
)
RETURNING *;
-- name: UpdateBadge :one
UPDATE public.badges
SET
name = $2,
description = $3,
color = $4
WHERE
id = $1
RETURNING *;
-- name: DeleteBadge :exec
DELETE FROM public.badges
WHERE
id = $1;
-- name: GetAllBadges :many
SELECT *
FROM public.badges;
-- name: GetBadgeByID :one
SELECT *
FROM public.badges
WHERE id = $1;
-- name: AddBadgeToUser :one
INSERT INTO public.users_badges (user_id, badge_id)
VALUES
(
$1,
$2
)
RETURNING *;
-- name: RemoveBadgeFromUser :exec
DELETE FROM public.users_badges
WHERE
user_id = $1
AND badge_id = $2;
-- name: GetUserBadges :many
SELECT b.*
FROM public.badges b
JOIN public.users_badges ub ON b.id = ub.badge_id
WHERE ub.user_id = $1;
-- name: GetUsersWithBadge :many
SELECT u.*
FROM public.users u
JOIN public.users_badges ub ON u.user_id = ub.user_id
WHERE ub.badge_id = $1;