Geração e aprovação de templates

## Endpoints

  • POST /api/cloud-api/templates-lifecycle/drafts — cria draft manual
  • POST /api/cloud-api/templates-lifecycle/drafts/generate — gera draft via IA
  • POST /api/cloud-api/templates-lifecycle/drafts/:id/validate — revalida regras Meta
  • POST /api/cloud-api/templates-lifecycle/drafts/:id/submit — submete pra Meta
  • GET /api/cloud-api/templates-lifecycle/submissions/:id — status (PENDING/APPROVED/REJECTED)

## Validação automática (regras Meta)

  • BODY texto: max 1024 chars
  • HEADER TEXT: max 60 chars, sem emoji se houver variável
  • BUTTONS: max 10 (3 quick_reply, 2 url, 1 phone)
  • MARKETING: deve ter mecanismo opt-out (warning)

## Dedupe automático

Sistema gera name_v2, name_v3, etc se já existir.

## Embedding semântico (P14)

Cada draft ganha embedding pgvector. findEquivalent() faz similarity search ao invés de match por categoria — evita gerar templates redundantes (custo IA reduzido).

## Bloqueado sob impersonation

Suporte interno NÃO pode gerar/aprovar/submeter templates (são permanentes na conta WABA). Apenas owner do tenant.