-- 090 — Backfill da etiqueta "Modelo p/ clientes" (Parte A+G, 20/08/2026)
--
-- Colunas modelo_liberado (boolean) e usos_max (integer) em multibm_templates
-- chegam via db:push (shared/schema.ts) — este arquivo é só o BACKFILL de
-- dados, na disciplina da casa ("migrations/*.sql = backfills, não estrutura").
--
-- POR QUE EXISTE: a partir de agora, só templates ETIQUETADOS pelo dono
-- aparecem em "Solicitar novo template" (antes, QUALQUER Base com uma
-- submissão APPROVED+UTILITY virava modelo — sem curadoria). Decisão do dono:
-- tudo que já existe hoje (dev + produção) vira o pavimento "da casa"; a
-- curadoria manual vale só daqui pra frente. Sem este backfill, o deploy
-- esvaziaria o seletor da noite pro dia para todo cliente (default da coluna
-- é FALSE) — o backfill liga exatamente os Bases que já eram modelo de fato.
--
-- Critério: MESMA regra que hoje decide "aparece em ?comoModelo=1" em
-- routes.ts (owner nulo = Base da casa, categoria não-MARKETING, ao menos uma
-- submissão APPROVED com categoria UTILITY) — medido em produção (18/08):
-- libera "texto_chamariz1" e "Magic3var_link".
--
-- Idempotente: rodar de novo não muda nada (só liga o que ainda está false).

BEGIN;

UPDATE multibm_templates t
SET modelo_liberado = true
WHERE t.modelo_liberado = false
  AND t.owner_user_id IS NULL
  AND upper(t.categoria) != 'MARKETING'
  AND EXISTS (
    SELECT 1 FROM multibm_template_submissions s
    WHERE s.template_id = t.id
      AND s.status = 'APPROVED'
      AND upper(COALESCE(s.categoria, 'UTILITY')) = 'UTILITY'
  );

COMMIT;
