Files
cgalo5758 ce3668d59e Refine operator overview metrics and styling
Replace domain claims with open invoices, show monthly recurring
revenue,
count team organizations, and add more informative trend captions.

Use standard bordered cards and add a README screenshot with reversible
sample-data tooling.
2026-07-27 02:44:55 -05:00

59 lines
2.5 KiB
PL/PgSQL

-- mockshot-nuke.sql — exact reversal of mockshot-seed.sql, FK order.
BEGIN;
DELETE FROM core.pool_provisions
WHERE grant_id IN (SELECT grant_id FROM core.grants WHERE description = 'mockshot');
DELETE FROM core.grants WHERE description = 'mockshot';
DELETE FROM core.payments
WHERE billing_account_id IN
(SELECT billing_account_id FROM core.accounts WHERE metadata @> '{"mockshot": true}'::jsonb);
DELETE FROM core.invoices
WHERE billing_account_id IN
(SELECT billing_account_id FROM core.accounts WHERE metadata @> '{"mockshot": true}'::jsonb);
DELETE FROM core.pool_provisions
WHERE subscription_id IN
(SELECT s.subscription_id FROM core.subscriptions s
JOIN core.accounts a ON a.billing_account_id = s.billing_account_id
WHERE a.metadata @> '{"mockshot": true}'::jsonb);
DELETE FROM core.subscription_items
WHERE subscription_id IN
(SELECT s.subscription_id FROM core.subscriptions s
JOIN core.accounts a ON a.billing_account_id = s.billing_account_id
WHERE a.metadata @> '{"mockshot": true}'::jsonb);
DELETE FROM core.subscriptions
WHERE billing_account_id IN
(SELECT billing_account_id FROM core.accounts WHERE metadata @> '{"mockshot": true}'::jsonb);
DELETE FROM core.accounts WHERE metadata @> '{"mockshot": true}'::jsonb;
-- After the subscription_items delete above (items reference prices), and
-- prices before their products.
DELETE FROM core.prices
WHERE product_id IN (SELECT product_id FROM core.products WHERE metadata @> '{"mockshot": true}'::jsonb);
-- After BOTH provision deletes above — grant-sourced and subscription-
-- sourced provisions each reference mock products.
DELETE FROM core.products WHERE metadata @> '{"mockshot": true}'::jsonb;
DELETE FROM core.organizations WHERE slug LIKE 'mockshot-%';
-- After the organizations delete (orgs reference the type).
DELETE FROM core.org_types WHERE org_type = 'team' AND description = 'mockshot';
-- Cascades the mock persons (fk_persons_user_id ON DELETE CASCADE)
DELETE FROM core.users WHERE oidc_subject LIKE 'mockshot-sub-%';
COMMIT;
-- Should all be zero
SELECT (SELECT count(*) FROM core.users WHERE oidc_subject LIKE 'mockshot-sub-%') AS users_left,
(SELECT count(*) FROM core.organizations WHERE slug LIKE 'mockshot-%') AS orgs_left,
(SELECT count(*) FROM core.grants WHERE description = 'mockshot') AS grants_left,
(SELECT count(*) FROM core.accounts WHERE metadata @> '{"mockshot": true}'::jsonb) AS accounts_left;