mirror of
https://github.com/PrivateCaptcha/PrivateCaptcha.git
synced 2026-02-11 00:08:47 -06:00
43 lines
1.3 KiB
SQL
43 lines
1.3 KiB
SQL
-- name: GetUserByID :one
|
|
SELECT * FROM backend.users WHERE id = $1;
|
|
|
|
-- name: GetUserByEmail :one
|
|
SELECT * FROM backend.users WHERE email = $1 AND deleted_at IS NULL;
|
|
|
|
-- name: CreateUser :one
|
|
INSERT INTO backend.users (name, email, subscription_id) VALUES ($1, $2, $3) RETURNING *;
|
|
|
|
-- name: UpdateUserData :one
|
|
UPDATE backend.users SET name = $2, email = $3, updated_at = NOW() WHERE id = $1 RETURNING *;
|
|
|
|
-- name: UpdateUserSubscription :one
|
|
UPDATE backend.users SET subscription_id = $2, updated_at = NOW() WHERE id = $1 RETURNING *;
|
|
|
|
-- name: SoftDeleteUser :one
|
|
UPDATE backend.users SET deleted_at = NOW() WHERE id = $1 RETURNING *;
|
|
|
|
-- name: GetSoftDeletedUsers :many
|
|
SELECT sqlc.embed(u)
|
|
FROM backend.users u
|
|
WHERE u.deleted_at IS NOT NULL
|
|
AND u.deleted_at < $1
|
|
LIMIT $2;
|
|
|
|
-- name: DeleteUsers :exec
|
|
DELETE FROM backend.users WHERE id = ANY($1::INT[]);
|
|
|
|
-- name: GetUsersWithoutSubscription :many
|
|
SELECT * FROM backend.users where id = ANY($1::INT[]) AND (subscription_id IS NULL OR deleted_at IS NOT NULL);
|
|
|
|
-- name: GetTrialUsers :many
|
|
SELECT u.*
|
|
FROM backend.users u
|
|
JOIN backend.subscriptions s ON u.subscription_id = s.id
|
|
WHERE
|
|
s.source = $1 AND
|
|
s.trial_ends_at IS NOT NULL AND
|
|
s.trial_ends_at BETWEEN $2 AND $3 AND
|
|
s.status = $4 AND
|
|
u.deleted_at IS NULL
|
|
LIMIT $5;
|