Files
History_Api/db/query/roles.sql
2026-03-25 22:29:43 +07:00

61 lines
1.2 KiB
SQL

-- name: CreateRole :one
INSERT INTO roles (name)
VALUES ($1)
RETURNING *;
-- name: GetRoleByName :one
SELECT id, name, is_deleted, created_at, updated_at FROM roles
WHERE name = $1 AND is_deleted = false;
-- name: GetRoleByID :one
SELECT id, name, is_deleted, created_at, updated_at FROM roles
WHERE id = $1 AND is_deleted = false;
-- name: AddUserRole :exec
INSERT INTO user_roles (user_id, role_id)
SELECT $1, r.id
FROM roles r
WHERE r.name = $2
ON CONFLICT DO NOTHING;
-- name: RemoveUserRole :exec
DELETE FROM user_roles ur
USING roles r
WHERE ur.role_id = r.id
AND ur.user_id = $1
AND r.name = $2;
-- name: RemoveAllRolesFromUser :exec
DELETE FROM user_roles
WHERE user_id = $1;
-- name: RemoveAllUsersFromRole :exec
DELETE FROM user_roles
WHERE role_id = $1;
-- name: GetRoles :many
SELECT *
FROM roles
WHERE is_deleted = false;
-- name: UpdateRole :one
UPDATE roles
SET
name = $1,
updated_at = now()
WHERE id = $2 AND is_deleted = false
RETURNING *;
-- name: DeleteRole :exec
UPDATE roles
SET
is_deleted = true,
updated_at = now()
WHERE id = $1;
-- name: RestoreRole :exec
UPDATE roles
SET
is_deleted = false,
updated_at = now()
WHERE id = $1;