-- ============================================================================= -- F1b — Decisão de roteamento anon: 6 tabelas anon-facing FICAM em public -- -- Fluxos anônimos identificam o tenant por TOKEN/SLUG (não por login), então -- não conseguem resolver o schema físico. Decisão (2026-06-13, opção C): -- manter essas tabelas em public com tenant_id + RLS por token, como hoje. -- -- patient_intake_requests — intake de paciente por convite (token) -- patient_invites — tokens de convite -- patient_invite_attempts — rate-limit anon dos convites -- document_share_links — assinatura pública de documento (token) -- agendador_configuracoes — agendador público (link_slug) -- agendador_solicitacoes — solicitação criada por visitante anon -- -- Logo, REMOVE essas 6 do _tenant_template (não viram schema do tenant). -- O clone_tenant_template itera as tabelas do template dinamicamente, então -- novos clones nascem sem elas automaticamente. Classificação final: -- 78 tenant-scoped + 59 globais (era 84 + 53). -- -- Nota F6: public.document_share_links.documento_id tem FK -> documents, que -- VAI pro schema do tenant. No drop de public.documents (F6), essa FK precisa -- virar coluna solta (uuid sem constraint) — o RPC valida via token. Idem -- qualquer FK public->tenant dessas 6 (registrar no lote de FKs da F6). -- ============================================================================= BEGIN; DO $$ DECLARE anon_tabs text[] := ARRAY[ 'patient_intake_requests','patient_invites','patient_invite_attempts', 'document_share_links','agendador_configuracoes','agendador_solicitacoes' ]; t text; BEGIN FOREACH t IN ARRAY anon_tabs LOOP IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = '_tenant_template' AND table_name = t) THEN EXECUTE format('DROP TABLE _tenant_template.%I CASCADE', t); RAISE NOTICE 'F1b: _tenant_template.% removida (fica em public)', t; END IF; -- defensivo: tira do registro de realtime do template, se estiver lá DELETE FROM _tenant_template._realtime_tables WHERE table_name = t; END LOOP; END $$; UPDATE _tenant_template._meta SET value = '2'::jsonb WHERE key = 'template_version'; COMMIT;