Files
member-console/internal/entitlements/pool_provision_transitions.sql.go
Christian Galo 667e9ffe24 Add plan ladders and pool provision transitions
Introduce DB migrations for ladder and pool-attachment tables and an
audit log for provision transitions. Make product_type nullable and add
lifecycle_status plus a product_kinds view. Implement Transition and
ReapplyDefaultsForPool primitives, SQLC queries/models, webhook and
Temporal workflow integration, and accompanying unit/integration tests.
2026-04-19 20:45:56 -05:00

151 lines
4.0 KiB
Go

// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: pool_provision_transitions.sql
package entitlements
import (
"context"
"database/sql"
"time"
"github.com/google/uuid"
)
const createPoolProvisionTransition = `-- name: CreatePoolProvisionTransition :one
INSERT INTO entitlements.pool_provision_transitions
(pool_id, provision_id, plan_ladder_id, from_rank, to_rank,
transition_type, actor_type, actor_id, reason, effective_at)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
RETURNING transition_id, pool_id, provision_id, plan_ladder_id, from_rank, to_rank, transition_type, actor_type, actor_id, reason, effective_at, created_at
`
type CreatePoolProvisionTransitionParams struct {
PoolID string `json:"pool_id"`
ProvisionID uuid.NullUUID `json:"provision_id"`
PlanLadderID string `json:"plan_ladder_id"`
FromRank sql.NullInt32 `json:"from_rank"`
ToRank sql.NullInt32 `json:"to_rank"`
TransitionType string `json:"transition_type"`
ActorType string `json:"actor_type"`
ActorID uuid.NullUUID `json:"actor_id"`
Reason sql.NullString `json:"reason"`
EffectiveAt time.Time `json:"effective_at"`
}
func (q *Queries) CreatePoolProvisionTransition(ctx context.Context, arg CreatePoolProvisionTransitionParams) (PoolProvisionTransition, error) {
row := q.db.QueryRowContext(ctx, createPoolProvisionTransition,
arg.PoolID,
arg.ProvisionID,
arg.PlanLadderID,
arg.FromRank,
arg.ToRank,
arg.TransitionType,
arg.ActorType,
arg.ActorID,
arg.Reason,
arg.EffectiveAt,
)
var i PoolProvisionTransition
err := row.Scan(
&i.TransitionID,
&i.PoolID,
&i.ProvisionID,
&i.PlanLadderID,
&i.FromRank,
&i.ToRank,
&i.TransitionType,
&i.ActorType,
&i.ActorID,
&i.Reason,
&i.EffectiveAt,
&i.CreatedAt,
)
return i, err
}
const listTransitionsByPool = `-- name: ListTransitionsByPool :many
SELECT transition_id, pool_id, provision_id, plan_ladder_id, from_rank, to_rank, transition_type, actor_type, actor_id, reason, effective_at, created_at FROM entitlements.pool_provision_transitions
WHERE pool_id = $1
ORDER BY effective_at DESC, created_at DESC
`
func (q *Queries) ListTransitionsByPool(ctx context.Context, poolID string) ([]PoolProvisionTransition, error) {
rows, err := q.db.QueryContext(ctx, listTransitionsByPool, poolID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []PoolProvisionTransition{}
for rows.Next() {
var i PoolProvisionTransition
if err := rows.Scan(
&i.TransitionID,
&i.PoolID,
&i.ProvisionID,
&i.PlanLadderID,
&i.FromRank,
&i.ToRank,
&i.TransitionType,
&i.ActorType,
&i.ActorID,
&i.Reason,
&i.EffectiveAt,
&i.CreatedAt,
); 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 listTransitionsByProvision = `-- name: ListTransitionsByProvision :many
SELECT transition_id, pool_id, provision_id, plan_ladder_id, from_rank, to_rank, transition_type, actor_type, actor_id, reason, effective_at, created_at FROM entitlements.pool_provision_transitions
WHERE provision_id = $1
ORDER BY effective_at ASC, created_at ASC
`
func (q *Queries) ListTransitionsByProvision(ctx context.Context, provisionID uuid.NullUUID) ([]PoolProvisionTransition, error) {
rows, err := q.db.QueryContext(ctx, listTransitionsByProvision, provisionID)
if err != nil {
return nil, err
}
defer rows.Close()
items := []PoolProvisionTransition{}
for rows.Next() {
var i PoolProvisionTransition
if err := rows.Scan(
&i.TransitionID,
&i.PoolID,
&i.ProvisionID,
&i.PlanLadderID,
&i.FromRank,
&i.ToRank,
&i.TransitionType,
&i.ActorType,
&i.ActorID,
&i.Reason,
&i.EffectiveAt,
&i.CreatedAt,
); 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
}