-- Удаляет ВСЕ компании со всеми данными и аккаунтами их участников. Необратимо — сначала сделайте дамп. -- Остаются: суперадмины, общая база объявлений и её номера, настройки парсера и биллинга. 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;