-- name: CreateCodigoAcesso :one
INSERT INTO codigos_acesso (
    codigo, descricao, validade_dias, expira_em, ativo
) VALUES (
    $1, $2, $3, $4, $5
)
RETURNING *;

-- name: ListCodigosAcesso :many
SELECT * FROM codigos_acesso
ORDER BY criado_em DESC;

-- name: DeleteCodigoAcesso :exec
DELETE FROM codigos_acesso
WHERE id = $1;

-- name: GetCodigoAcesso :one
SELECT * FROM codigos_acesso
WHERE codigo = $1 LIMIT 1;

-- name: IncrementCodigoAcessoUso :exec
UPDATE codigos_acesso
SET usos = usos + 1
WHERE id = $1;
