📄 SKILL.md

← Vault

name: comercialrs-crm-view-union-pattern

description: Create a Supabase view that unions an external CRM table (crm_leads_duplicate) with a local table (sales WHERE source=manual) — replacing a redundant sync layer without breaking existing frontend operations.


ComercialRS CRM-to-View Migration Pattern

Quando usar

Quando o frontend precisa ler de uma tabela que é apenas espelho de outra (crm_leads_duplicatesales), e você quer pular a camada de sync duplicada substituindo por uma view UNION, sem quebrar operações existentes (SELECT, UPDATE, INSERT, DELETE).

Problema original

Verificação pós-deploy

`sql

-- Contagem por source

SELECT source, COUNT(*) FROM sales_crm_view GROUP BY source;

-- Verificar duplicados CRM

SELECT "Id", COUNT() as cnt FROM crm_leads_duplicate GROUP BY "Id" HAVING COUNT() > 1;

-- Verificar CRM sem matching em sales

SELECT s.id, s.external_ref FROM sales s

WHERE s.source = 'crm' AND s.deleted_at IS NULL

AND NOT EXISTS (SELECT 1 FROM crm_leads_duplicate c WHERE 'crm-lead-' || c."Id" = s.external_ref);

`