ce3668d59e
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.
59 lines
2.5 KiB
PL/PgSQL
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;
|