Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
47 lines
3.2 KiB
PL/PgSQL
47 lines
3.2 KiB
PL/PgSQL
-- Удаляет ВСЕ компании со всеми данными и аккаунтами их участников. Необратимо — сначала сделайте дамп.
|
|
-- Остаются: суперадмины, общая база объявлений и её номера, настройки парсера и биллинга.
|
|
|
|
BEGIN;
|
|
|
|
CREATE TEMP TABLE c ON COMMIT DROP AS SELECT id FROM companies;
|
|
CREATE TEMP TABLE u ON COMMIT DROP AS SELECT id FROM users WHERE company_id IN (SELECT id FROM c);
|
|
CREATE TEMP TABLE l ON COMMIT DROP AS SELECT id FROM leads WHERE company_id IN (SELECT id FROM c);
|
|
CREATE TEMP TABLE cl ON COMMIT DROP AS SELECT id FROM clients WHERE company_id IN (SELECT id FROM c);
|
|
|
|
DELETE FROM payments WHERE invoice_id IN (SELECT id FROM invoices WHERE company_id IN (SELECT id FROM c));
|
|
DELETE FROM invoices WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM payouts WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM pay_adjustments WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM viewings WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM client_leads WHERE client_id IN (SELECT id FROM cl) OR lead_id IN (SELECT id FROM l);
|
|
DELETE FROM client_pages WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM client_photos WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM intake_sessions WHERE client_id IN (SELECT id FROM cl) OR link_token IN (SELECT token FROM intake_links WHERE company_id IN (SELECT id FROM c));
|
|
DELETE FROM intake_links WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM deals WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM events WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM lead_notifications WHERE lead_id IN (SELECT id FROM l) OR user_id IN (SELECT id FROM u);
|
|
DELETE FROM outbox WHERE lead_id IN (SELECT id FROM l) OR user_id IN (SELECT id FROM u);
|
|
DELETE FROM leads WHERE id IN (SELECT id FROM l);
|
|
DELETE FROM clients WHERE id IN (SELECT id FROM cl);
|
|
DELETE FROM filters WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM blacklist WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM listing_phones WHERE company_id IN (SELECT id FROM c) OR user_id IN (SELECT id FROM u);
|
|
DELETE FROM invites WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM pipeline_statuses WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM reject_reasons WHERE company_id IN (SELECT id FROM c);
|
|
DELETE FROM admin_messages WHERE company_id IN (SELECT id FROM c) OR user_id IN (SELECT id FROM u);
|
|
DELETE FROM support_messages WHERE ticket_id IN (SELECT id FROM support_tickets WHERE user_id IN (SELECT id FROM u));
|
|
UPDATE support_messages SET author_id = NULL WHERE author_id IN (SELECT id FROM u);
|
|
DELETE FROM support_tickets WHERE user_id IN (SELECT id FROM u);
|
|
DELETE FROM email_tokens WHERE user_id IN (SELECT id FROM u);
|
|
DELETE FROM sessions WHERE user_id IN (SELECT id FROM u);
|
|
UPDATE sessions SET acting_company_id = NULL WHERE acting_company_id IN (SELECT id FROM c);
|
|
DELETE FROM users WHERE id IN (SELECT id FROM u);
|
|
DELETE FROM companies WHERE id IN (SELECT id FROM c);
|
|
|
|
COMMIT;
|
|
|
|
SELECT (SELECT count(*) FROM companies) AS companies, (SELECT count(*) FROM users) AS users,
|
|
(SELECT count(*) FROM leads) AS leads, (SELECT count(*) FROM listings) AS listings;
|