Files
member-console/internal/entitlements/queries/pool_provision_ladders.sql

41 lines
1.4 KiB
SQL

-- name: CreatePoolProvisionLadder :one
INSERT INTO entitlements.pool_provision_ladders
(provision_id, plan_ladder_id, product_id, pool_id, status, activated_at, ended_at)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING *;
-- name: GetActiveLadderAttachmentByPoolLadder :one
SELECT * FROM entitlements.pool_provision_ladders
WHERE pool_id = $1 AND plan_ladder_id = $2 AND status = 'active'
LIMIT 1;
-- name: GetLadderAttachmentsByProvision :many
SELECT * FROM entitlements.pool_provision_ladders
WHERE provision_id = $1
ORDER BY activated_at ASC;
-- name: GetLadderAttachmentsByPool :many
SELECT * FROM entitlements.pool_provision_ladders
WHERE pool_id = $1
ORDER BY activated_at DESC;
-- name: EndPoolProvisionLadder :one
UPDATE entitlements.pool_provision_ladders
SET status = 'ended',
ended_at = @ended_at::TIMESTAMPTZ
WHERE provision_id = @provision_id AND plan_ladder_id = @plan_ladder_id
RETURNING *;
-- name: GetActiveAttachmentsByPool :many
SELECT * FROM entitlements.pool_provision_ladders
WHERE pool_id = $1 AND status = 'active'
ORDER BY activated_at DESC;
-- name: CountActiveAttachmentsByLadder :one
SELECT COUNT(*) FROM entitlements.pool_provision_ladders
WHERE plan_ladder_id = $1 AND status = 'active';
-- name: CountActiveAttachmentsByTier :one
SELECT COUNT(*) FROM entitlements.pool_provision_ladders
WHERE plan_ladder_id = $1 AND product_id = $2 AND status = 'active';