CI (SIAX Cloud) / sonar (pull_request) Skipped
masterplan-lock / check (pull_request) Successful in 4s
masterplan-lock / check (push) Successful in 5s
CI (SIAX Cloud) / security (pull_request) Successful in 16s
Security Scan (SIAX Cloud) / security (pull_request) Successful in 16s
CI (SIAX Cloud) / integration (pull_request) Successful in 9m58s
CI (SIAX Cloud) / quality (pull_request) Successful in 10m25s
- Ledger accepts kind='grant' (a server-owned balance grant, not a payment). - OPT_TRIAL_CREDITS=N grants N credits once per tenant (idempotent key trial:<tenant>) on balance/structure, so reserve -> settle is exercised before any customer purchase. - sql/020 extends the kind constraint (re-runnable). - Tests for the grant helper; full suite 1345 passed.
17 lines
637 B
SQL
17 lines
637 B
SQL
-- Trial / grant credits: a server-owned, idempotent balance grant that is not
|
|
-- a payment. Extends the existing kind constraint; safe to re-run.
|
|
DO $$
|
|
DECLARE cname text;
|
|
BEGIN
|
|
SELECT conname INTO cname
|
|
FROM pg_constraint
|
|
WHERE conrelid = 'opt_credit_events'::regclass
|
|
AND contype = 'c'
|
|
AND pg_get_constraintdef(oid) LIKE '%kind%';
|
|
IF cname IS NOT NULL THEN
|
|
EXECUTE format('ALTER TABLE opt_credit_events DROP CONSTRAINT %I', cname);
|
|
END IF;
|
|
ALTER TABLE opt_credit_events ADD CONSTRAINT opt_credit_events_kind_check
|
|
CHECK (kind IN ('verified_payment', 'grant', 'reserve', 'settle', 'release'));
|
|
END $$;
|