-- Gerador de Templates (Utility neutro) — etapa anterior aos Templates Validados.
-- Aplicado manualmente via psql (db:push interativo trava com tabelas novas —
-- ver .agents/memory/db-push-rename-prompt.md). Espelha shared/schema.ts.

-- 1) Rascunhos gerados por IA (copy + imagem neutra) ANTES da submissão à Meta.
--    Tabela dedicada (não reusa waba_templates) porque um rascunho não tem
--    serviço/sender/Infobip ID ainda e não pode colidir com o `nome` único
--    global dos templates reais.
CREATE TABLE IF NOT EXISTS generated_templates (
  id                 varchar PRIMARY KEY DEFAULT gen_random_uuid(),
  nome               varchar NOT NULL,
  idioma             varchar(10) NOT NULL DEFAULT 'pt_BR',
  categoria          varchar(50) NOT NULL DEFAULT 'UTILITY',
  status             varchar(20) NOT NULL DEFAULT 'GERADO',

  header_type        varchar(20) NOT NULL DEFAULT 'imagem',
  qtd_variaveis      integer NOT NULL DEFAULT 0,
  url_prefixo        varchar,
  url_completa       text,
  origem_url         varchar(20) NOT NULL DEFAULT 'PORTAL_PROPRIO',
  botao_url_texto    varchar,
  quick_reply_texto  varchar,
  sugestao_copy      text,

  corpo              text,
  rodape             varchar,
  variaveis_exemplo  jsonb,
  imagem_url         text,
  imagem_brief       text,
  imagem_prompt      text,

  text_provider      varchar(20),
  text_model         varchar(80),
  image_provider     varchar(20),
  image_model        varchar(80),
  payload_preview    jsonb,

  criado_por         varchar REFERENCES users(id) ON DELETE SET NULL,
  created_at         timestamptz DEFAULT now(),
  updated_at         timestamptz DEFAULT now()
);

-- 2) Config singleton — provedor/modelo plugáveis (texto e imagem). A CHAVE de
--    cada provedor vem de segredo (env), nunca persistida aqui.
CREATE TABLE IF NOT EXISTS template_generator_config (
  key                  varchar(32) PRIMARY KEY DEFAULT 'default',
  text_provider        varchar(20) NOT NULL DEFAULT 'gemini',
  text_model           varchar(80) NOT NULL DEFAULT 'gemini-2.5-flash',
  image_provider       varchar(20) NOT NULL DEFAULT 'gemini',
  image_model          varchar(80) NOT NULL DEFAULT 'imagen-4.0-generate-001',
  image_aspect_ratio   varchar(10) NOT NULL DEFAULT '16:9',
  updated_at           timestamptz NOT NULL DEFAULT now()
);
