26 lines
886 B
SQL
26 lines
886 B
SQL
-- name: CreateUser :one
|
|
INSERT INTO users (id, email, password_hash, timezone)
|
|
VALUES ($1, $2, $3, $4)
|
|
RETURNING id, email, password_hash, timezone, is_active, created_at, updated_at;
|
|
|
|
-- name: GetUserByID :one
|
|
SELECT id, email, password_hash, timezone, is_active, created_at, updated_at
|
|
FROM users
|
|
WHERE id = $1 AND deleted_at IS NULL;
|
|
|
|
-- name: GetUserByEmail :one
|
|
SELECT id, email, password_hash, timezone, is_active, created_at, updated_at
|
|
FROM users
|
|
WHERE email = $1 AND deleted_at IS NULL;
|
|
|
|
-- name: UpdateUser :one
|
|
UPDATE users
|
|
SET timezone = COALESCE(sqlc.narg('timezone')::TEXT, timezone),
|
|
updated_at = now()
|
|
WHERE id = @id AND deleted_at IS NULL
|
|
RETURNING id, email, password_hash, timezone, is_active, created_at, updated_at;
|
|
|
|
-- name: SoftDeleteUser :exec
|
|
UPDATE users SET deleted_at = now(), is_active = false, updated_at = now()
|
|
WHERE id = $1 AND deleted_at IS NULL;
|