-- =====================================================
-- Script: Recriação completa do schema PUBLIC
-- ATENÇÃO: Este script apaga TODOS os dados do banco!
-- =====================================================
--
-- INSTRUÇÕES DE USO:
-- 1. Se houver erro de "transação abortada", execute:
--    ROLLBACK;
-- 2. Depois execute este script completo
-- =====================================================

-- Visualiza quantas tabelas existem antes de apagar
SELECT
    'ATENÇÃO: Existem ' || COUNT(*) || ' tabelas que serão apagadas!' AS aviso
FROM information_schema.tables
WHERE table_schema = 'public';

-- Apaga o schema public e TODOS os objetos dentro dele
-- (tabelas, views, funções, sequences, tipos, etc.)
DROP SCHEMA IF EXISTS public CASCADE;

-- Recria o schema public vazio
CREATE SCHEMA public;

-- Restaura as permissões padrão do PostgreSQL
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO public;

-- Confirma que o schema foi recriado
SELECT
    'Schema PUBLIC foi recriado com sucesso!' AS resultado,
    COUNT(*) AS tabelas_restantes
FROM information_schema.tables
WHERE table_schema = 'public';