61 lines
1022 B
SQL
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; |