Files
member-console/internal/entitlements/entitlement_sets.sql.go
T
cgalo5758 f8a3478f2a Rebuild the entitlement set Rules surface as a staged batch
The Rules section is one record table grouped by kind, Limit then
Boolean, on fixed columns, edited in place: Edit opens a row's controls
in their columns, Add rule opens a dense row above the table, and every
change is staged into a tray that lists the deltas with Undo and applies
them as one rule-change act. The reduction policy is a column of the
rule beside its limit. History shows counts only. Group rows are a quiet
heading rather than a divider, the maintainer's pick from four rounds of
outside-model ideation.

Dense rows align to the top and render each error under its control in
every form family (design D16), replacing the below-row error block; the
forms library gains the batch form (rows plus one tray) and the RowField
dense and label-hidden options. Migration 00019 records the governing
reduction policy on effect rows.

Archive staged-rule-changes with its spec updates (entitlement-set-
management, entitlement-set-history, entitlements, form-library,
form-conventions, ui-quality-gate). Screens accepted 2026-09-19.
2026-09-19 19:46:09 -05:00

273 lines
7.1 KiB
Go

// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Commercial
// SPDX-FileCopyrightText: 2025-2026 Christian Galo
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.29.0
// source: entitlement_sets.sql
package entitlements
import (
"context"
"database/sql"
"github.com/lib/pq"
)
const anyActiveEntitlementSet = `-- name: AnyActiveEntitlementSet :one
SELECT EXISTS(SELECT 1 FROM core.entitlement_sets WHERE is_active = TRUE)
`
// Setup-checklist existence probe: the whole-table answer, not a lookup.
func (q *Queries) AnyActiveEntitlementSet(ctx context.Context) (bool, error) {
row := q.db.QueryRowContext(ctx, anyActiveEntitlementSet)
var exists bool
err := row.Scan(&exists)
return exists, err
}
const createEntitlementSet = `-- name: CreateEntitlementSet :one
INSERT INTO core.entitlement_sets (name, description, is_active, key)
VALUES ($1, $2, $3, $4)
RETURNING set_id, name, description, is_active, created_at, updated_at, key
`
type CreateEntitlementSetParams struct {
Name string `json:"name"`
Description sql.NullString `json:"description"`
IsActive bool `json:"is_active"`
Key sql.NullString `json:"key"`
}
// `key` is the optional declarative address (entity-keys §3), root-scoped.
// The operator create form does not collect one, so a UI-created set leaves
// it NULL; a seed or a configuration loader supplies it.
func (q *Queries) CreateEntitlementSet(ctx context.Context, arg CreateEntitlementSetParams) (EntitlementSet, error) {
row := q.db.QueryRowContext(ctx, createEntitlementSet,
arg.Name,
arg.Description,
arg.IsActive,
arg.Key,
)
var i EntitlementSet
err := row.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
)
return i, err
}
const getEntitlementSetByID = `-- name: GetEntitlementSetByID :one
SELECT set_id, name, description, is_active, created_at, updated_at, key FROM core.entitlement_sets
WHERE set_id = $1
`
func (q *Queries) GetEntitlementSetByID(ctx context.Context, setID string) (EntitlementSet, error) {
row := q.db.QueryRowContext(ctx, getEntitlementSetByID, setID)
var i EntitlementSet
err := row.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
)
return i, err
}
const getEntitlementSetByKey = `-- name: GetEntitlementSetByKey :one
SELECT set_id, name, description, is_active, created_at, updated_at, key FROM core.entitlement_sets
WHERE key = $1
`
// Root key resolver (entity-keys §5). uq_entitlement_sets_key guarantees at
// most one row matches.
func (q *Queries) GetEntitlementSetByKey(ctx context.Context, key sql.NullString) (EntitlementSet, error) {
row := q.db.QueryRowContext(ctx, getEntitlementSetByKey, key)
var i EntitlementSet
err := row.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
)
return i, err
}
const listActiveEntitlementSets = `-- name: ListActiveEntitlementSets :many
SELECT set_id, name, description, is_active, created_at, updated_at, key FROM core.entitlement_sets
WHERE is_active = TRUE
ORDER BY name ASC
`
func (q *Queries) ListActiveEntitlementSets(ctx context.Context) ([]EntitlementSet, error) {
rows, err := q.db.QueryContext(ctx, listActiveEntitlementSets)
if err != nil {
return nil, err
}
defer rows.Close()
items := []EntitlementSet{}
for rows.Next() {
var i EntitlementSet
if err := rows.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
); 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 listEntitlementSets = `-- name: ListEntitlementSets :many
SELECT set_id, name, description, is_active, created_at, updated_at, key FROM core.entitlement_sets
ORDER BY name ASC
`
func (q *Queries) ListEntitlementSets(ctx context.Context) ([]EntitlementSet, error) {
rows, err := q.db.QueryContext(ctx, listEntitlementSets)
if err != nil {
return nil, err
}
defer rows.Close()
items := []EntitlementSet{}
for rows.Next() {
var i EntitlementSet
if err := rows.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
); 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 listEntitlementSetsByIDs = `-- name: ListEntitlementSetsByIDs :many
SELECT set_id, name, description, is_active, created_at, updated_at, key FROM core.entitlement_sets
WHERE set_id = ANY($1::uuid[])
ORDER BY name ASC
`
// The products list's set names for one page in one read (purchasability-
// status "The verdict per page, from batches, never cached", design D4,
// folded in on the maintainer's word 2026-09-06): the sets the page's
// products reference, instead of GetEntitlementSetByID once per row.
func (q *Queries) ListEntitlementSetsByIDs(ctx context.Context, setIds []string) ([]EntitlementSet, error) {
rows, err := q.db.QueryContext(ctx, listEntitlementSetsByIDs, pq.Array(setIds))
if err != nil {
return nil, err
}
defer rows.Close()
items := []EntitlementSet{}
for rows.Next() {
var i EntitlementSet
if err := rows.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
); 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 lockEntitlementSet = `-- name: LockEntitlementSet :one
SELECT set_id FROM core.entitlement_sets
WHERE set_id = $1
FOR UPDATE
`
// The set row taken FOR UPDATE: the guard a rule change holds beside the
// exclusive materialization rendezvous against a writer that changes the set
// row without that lock. A batch takes it once for every act it files
// (entitlement-set-management, "A rule change commit reaches every carrying
// pool").
func (q *Queries) LockEntitlementSet(ctx context.Context, setID string) (string, error) {
row := q.db.QueryRowContext(ctx, lockEntitlementSet, setID)
var set_id string
err := row.Scan(&set_id)
return set_id, err
}
const updateEntitlementSet = `-- name: UpdateEntitlementSet :one
UPDATE core.entitlement_sets
SET name = $2, description = $3, is_active = $4
WHERE set_id = $1
RETURNING set_id, name, description, is_active, created_at, updated_at, key
`
type UpdateEntitlementSetParams struct {
SetID string `json:"set_id"`
Name string `json:"name"`
Description sql.NullString `json:"description"`
IsActive bool `json:"is_active"`
}
func (q *Queries) UpdateEntitlementSet(ctx context.Context, arg UpdateEntitlementSetParams) (EntitlementSet, error) {
row := q.db.QueryRowContext(ctx, updateEntitlementSet,
arg.SetID,
arg.Name,
arg.Description,
arg.IsActive,
)
var i EntitlementSet
err := row.Scan(
&i.SetID,
&i.Name,
&i.Description,
&i.IsActive,
&i.CreatedAt,
&i.UpdatedAt,
&i.Key,
)
return i, err
}