Files
member-console/internal/entitlements/pool_provisions.sql.go
Christian Galo 751bae7768 Use plan ladder for org defaults
Add default_plan_ladder_id with a forward data migration and update
the runtime to resolve the ladder's rank-0 tier at use-time. Regenerate
sqlc, update auto-provisioning, ReapplyDefaultsForPool, operator UI and
tests; add GetTierByLadderRank and pool/provision query helpers. Add a
CSP-safe confirm-action modal and wire operator actions to it. Close
plan-sole-writer safety gaps and serialize IssueGrant with a FOR UPDATE
pool lock to prevent ladder races.
2026-04-27 01:57:17 -05:00

300 lines
8.5 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: pool_provisions.sql
package entitlements
import (
"context"
"github.com/google/uuid"
)
const createPoolProvision = `-- name: CreatePoolProvision :one
INSERT INTO entitlements.pool_provisions (pool_id, grant_id, entitlement_set_id, quantity)
VALUES ($1, $2, $3, $4)
RETURNING provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id
`
type CreatePoolProvisionParams struct {
PoolID string `json:"pool_id"`
GrantID uuid.NullUUID `json:"grant_id"`
EntitlementSetID string `json:"entitlement_set_id"`
Quantity int32 `json:"quantity"`
}
func (q *Queries) CreatePoolProvision(ctx context.Context, arg CreatePoolProvisionParams) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, createPoolProvision,
arg.PoolID,
arg.GrantID,
arg.EntitlementSetID,
arg.Quantity,
)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}
const createSubscriptionPoolProvision = `-- name: CreateSubscriptionPoolProvision :one
INSERT INTO entitlements.pool_provisions (pool_id, subscription_id, billing_account_id, entitlement_set_id, quantity)
VALUES ($1, $2, $3, $4, $5)
RETURNING provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id
`
type CreateSubscriptionPoolProvisionParams struct {
PoolID string `json:"pool_id"`
SubscriptionID uuid.NullUUID `json:"subscription_id"`
BillingAccountID uuid.NullUUID `json:"billing_account_id"`
EntitlementSetID string `json:"entitlement_set_id"`
Quantity int32 `json:"quantity"`
}
func (q *Queries) CreateSubscriptionPoolProvision(ctx context.Context, arg CreateSubscriptionPoolProvisionParams) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, createSubscriptionPoolProvision,
arg.PoolID,
arg.SubscriptionID,
arg.BillingAccountID,
arg.EntitlementSetID,
arg.Quantity,
)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}
const getActivePoolProvisionsByPoolID = `-- name: GetActivePoolProvisionsByPoolID :many
SELECT provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id FROM entitlements.pool_provisions
WHERE pool_id = $1 AND status = 'active'
ORDER BY created_at ASC
`
func (q *Queries) GetActivePoolProvisionsByPoolID(ctx context.Context, poolID string) ([]PoolProvision, error) {
rows, err := q.db.QueryContext(ctx, getActivePoolProvisionsByPoolID, poolID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []PoolProvision{}
for rows.Next() {
var i PoolProvision
if err := rows.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getPoolProvisionByGrantID = `-- name: GetPoolProvisionByGrantID :one
SELECT provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id FROM entitlements.pool_provisions
WHERE grant_id = $1
`
func (q *Queries) GetPoolProvisionByGrantID(ctx context.Context, grantID uuid.NullUUID) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, getPoolProvisionByGrantID, grantID)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}
const getPoolProvisionByProvisionID = `-- name: GetPoolProvisionByProvisionID :one
SELECT provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id FROM entitlements.pool_provisions
WHERE provision_id = $1
`
func (q *Queries) GetPoolProvisionByProvisionID(ctx context.Context, provisionID string) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, getPoolProvisionByProvisionID, provisionID)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}
const getPoolProvisionBySubscriptionID = `-- name: GetPoolProvisionBySubscriptionID :one
SELECT provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id FROM entitlements.pool_provisions
WHERE subscription_id = $1
`
func (q *Queries) GetPoolProvisionBySubscriptionID(ctx context.Context, subscriptionID uuid.NullUUID) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, getPoolProvisionBySubscriptionID, subscriptionID)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}
const getPoolProvisionsByPoolID = `-- name: GetPoolProvisionsByPoolID :many
SELECT provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id FROM entitlements.pool_provisions
WHERE pool_id = $1
ORDER BY created_at ASC
`
func (q *Queries) GetPoolProvisionsByPoolID(ctx context.Context, poolID string) ([]PoolProvision, error) {
rows, err := q.db.QueryContext(ctx, getPoolProvisionsByPoolID, poolID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []PoolProvision{}
for rows.Next() {
var i PoolProvision
if err := rows.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
); err != nil {
return nil, err
}
items = append(items, i)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const updatePoolProvisionStatus = `-- name: UpdatePoolProvisionStatus :one
UPDATE entitlements.pool_provisions
SET status = $1::VARCHAR(20),
ended_at = CASE WHEN $1::VARCHAR(20) = 'ended' THEN NOW() ELSE ended_at END,
suspended_at = CASE WHEN $1::VARCHAR(20) = 'suspended' THEN NOW() ELSE suspended_at END
WHERE provision_id = $2
RETURNING provision_id, pool_id, billing_account_id, subscription_id, purchase_id, grant_id, quantity, status, activated_at, suspended_at, ended_at, created_at, updated_at, entitlement_set_id
`
type UpdatePoolProvisionStatusParams struct {
Status string `json:"status"`
ProvisionID string `json:"provision_id"`
}
func (q *Queries) UpdatePoolProvisionStatus(ctx context.Context, arg UpdatePoolProvisionStatusParams) (PoolProvision, error) {
row := q.db.QueryRowContext(ctx, updatePoolProvisionStatus, arg.Status, arg.ProvisionID)
var i PoolProvision
err := row.Scan(
&i.ProvisionID,
&i.PoolID,
&i.BillingAccountID,
&i.SubscriptionID,
&i.PurchaseID,
&i.GrantID,
&i.Quantity,
&i.Status,
&i.ActivatedAt,
&i.SuspendedAt,
&i.EndedAt,
&i.CreatedAt,
&i.UpdatedAt,
&i.EntitlementSetID,
)
return i, err
}