- copy passa de gpt-5.4-mini para gpt-5.4 (full), sobrescrevível por OPENAI_COPY_MODEL; temperatura 0.9 para texto menos engessado - prompt ganha bloco "proibido ser genérico": exige detalhe concreto por frase, pattern interrupt na 1a linha, variações realmente distintas - skin festa_infantil: copy_rules descrevem o fluxo self-service real (foto -> avatar 3D grátis -> escolher e gerar entre 33 artes; R$9,99 = 10 créditos) e proíbem "receba/kit pronto", forçando verbos de criação Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
243 lines
12 KiB
TypeScript
243 lines
12 KiB
TypeScript
export type FieldType = 'text' | 'textarea' | 'number';
|
|
|
|
export interface SkinField {
|
|
id: string;
|
|
label: string;
|
|
placeholder: string;
|
|
type: FieldType;
|
|
required?: boolean;
|
|
}
|
|
|
|
export interface SkinConfig {
|
|
id: string;
|
|
name: string;
|
|
icon: string; // Emoji for simplicity
|
|
themeColor: string; // Tailwind class like 'bg-blue-600'
|
|
accentColor: string; // Hex color for AI Prompt context if needed
|
|
|
|
// Custom form fields that replace the generic ones
|
|
fields: SkinField[];
|
|
|
|
// AI Injection Context
|
|
ai_guidelines: {
|
|
copy_rules: string;
|
|
image_style: string;
|
|
};
|
|
|
|
// Meta Ads Defaults
|
|
meta_defaults: {
|
|
objective: string;
|
|
targeting_template: string;
|
|
bid_strategy: string;
|
|
};
|
|
}
|
|
|
|
export const SYSTEM_SKINS: SkinConfig[] = [
|
|
{
|
|
id: 'generic',
|
|
name: 'Padrão / Genérico',
|
|
icon: '🚀',
|
|
themeColor: 'bg-white/10 border-white/20',
|
|
accentColor: '#ffffff',
|
|
fields: [
|
|
{ id: 'product', label: 'O que você está vendendo?', placeholder: 'Ex: Mentoria de Vendas, Tênis Esportivo...', type: 'text', required: true },
|
|
{ id: 'audience', label: 'Quem é o seu público?', placeholder: 'Ex: Homens de 25 a 40 anos que gostam de esportes...', type: 'textarea' },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Use uma linguagem persuasiva e direta.',
|
|
image_style: 'Minimalista, alta conversão, foco no produto',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_TRAFFIC',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'real_estate',
|
|
name: 'Corretor / Imobiliária',
|
|
icon: '🏢',
|
|
themeColor: 'bg-blue-900/40 border-blue-500/50',
|
|
accentColor: '#3b82f6',
|
|
fields: [
|
|
{ id: 'property_type', label: 'Tipo de Imóvel', placeholder: 'Ex: Apartamento 3 suítes, Casa em Condomínio...', type: 'text', required: true },
|
|
{ id: 'location', label: 'Localização (Bairro/Cidade)', placeholder: 'Ex: Vila Nova Conceição, SP', type: 'text', required: true },
|
|
{ id: 'price', label: 'Valor (Aproximado)', placeholder: 'Ex: A partir de R$ 850.000', type: 'text' },
|
|
{ id: 'differentials', label: 'Diferenciais do Imóvel', placeholder: 'Ex: Varanda gourmet, 2 vagas, lazer completo...', type: 'textarea' }
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Você é um corretor de imóveis de alto padrão. Crie anúncios sofisticados, focados no sonho da casa própria, localização privilegiada e valorização do metro quadrado. Use jargões do mercado imobiliário com elegância.',
|
|
image_style: 'Fotografia de arquitetura realista, iluminação natural, interior luxuoso de imóvel, aconchegante',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_LEADS', // Imóveis costumam captar leads
|
|
targeting_template: 'broad_brazil', // We could create a specific one later
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'dentist',
|
|
name: 'Odontologia / Estética',
|
|
icon: '🦷',
|
|
themeColor: 'bg-teal-900/40 border-teal-500/50',
|
|
accentColor: '#14b8a6',
|
|
fields: [
|
|
{ id: 'treatment', label: 'Qual tratamento deseja anunciar?', placeholder: 'Ex: Lentes de Contato Dental, Implantes, Botox...', type: 'text', required: true },
|
|
{ id: 'clinic_name', label: 'Nome da sua Clínica', placeholder: 'Ex: OdontoPremium', type: 'text' },
|
|
{ id: 'pain_point', label: 'Qual a principal dor do paciente?', placeholder: 'Ex: Vergonha de sorrir, falta de dentes...', type: 'textarea' },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Você é um especialista em marketing médico e odontológico. Foque em auto-estima, confiança, segurança do procedimento e sorriso perfeito. Evite prometer resultados milagrosos (política do Facebook), foque no bem-estar.',
|
|
image_style: 'Pessoa sorrindo com dentes perfeitos, ambiente clínico moderno e limpo, tons de azul e branco, iluminação suave',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_TRAFFIC',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'ecommerce',
|
|
name: 'E-commerce / Dropshipping',
|
|
icon: '🛍️',
|
|
themeColor: 'bg-orange-900/40 border-orange-500/50',
|
|
accentColor: '#f97316',
|
|
fields: [
|
|
{ id: 'product_name', label: 'Nome do Produto', placeholder: 'Ex: Smartwatch Ultra Pro...', type: 'text', required: true },
|
|
{ id: 'offer', label: 'Oferta / Preço', placeholder: 'Ex: 50% de Desconto + Frete Grátis', type: 'text', required: true },
|
|
{ id: 'benefits', label: 'Principais Benefícios', placeholder: 'Ex: Bateria dura 7 dias, à prova d\'água...', type: 'textarea' },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Use escassez, urgência e gatilhos mentais fortes. Foque no problema que o produto resolve e na oferta irresistível.',
|
|
image_style: 'Produto em destaque, fundo limpo, cores vibrantes, design focado em conversão e oferta',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_SALES',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'infoproduct',
|
|
name: 'Infoprodutos / Lançamentos',
|
|
icon: '📚',
|
|
themeColor: 'bg-purple-900/40 border-purple-500/50',
|
|
accentColor: '#a855f7',
|
|
fields: [
|
|
{ id: 'course_name', label: 'Nome do Curso/Mentoria', placeholder: 'Ex: Método Venda Todo Dia...', type: 'text', required: true },
|
|
{ id: 'expert_name', label: 'Nome do Especialista', placeholder: 'Ex: João Silva', type: 'text' },
|
|
{ id: 'promise', label: 'Promessa Principal', placeholder: 'Ex: Aprenda a faturar 10k em 30 dias...', type: 'textarea', required: true },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Foque na transformação e na autoridade do especialista. Use storytelling curto e convite claro para a ação (ex: Cadastre-se, Assista a aula).',
|
|
image_style: 'Especialista apontando ou sorrindo, fundo de alta qualidade, elementos que remetem a sucesso e conhecimento',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_LEADS',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'delivery',
|
|
name: 'Delivery / Restaurante',
|
|
icon: '🍔',
|
|
themeColor: 'bg-red-900/40 border-red-500/50',
|
|
accentColor: '#ef4444',
|
|
fields: [
|
|
{ id: 'food_type', label: 'Tipo de Comida', placeholder: 'Ex: Hambúrguer Artesanal, Pizza, Sushi...', type: 'text', required: true },
|
|
{ id: 'promo', label: 'Promoção do Dia', placeholder: 'Ex: Compre 1 Leve 2, Frete Grátis na primeira compra...', type: 'text' },
|
|
{ id: 'location', label: 'Bairros de Entrega', placeholder: 'Ex: Centro, Zona Sul...', type: 'textarea' },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Desperte desejo imediato. Use linguagem apetitosa, foque na rapidez da entrega e promoções imperdíveis. Textos curtos e diretos.',
|
|
image_style: 'Comida suculenta e em close, cores quentes (vermelho, laranja, amarelo), vapor saindo, muito apetitoso',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_ENGAGEMENT',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'local_service',
|
|
name: 'Serviços Locais',
|
|
icon: '🔧',
|
|
themeColor: 'bg-yellow-900/40 border-yellow-500/50',
|
|
accentColor: '#eab308',
|
|
fields: [
|
|
{ id: 'service', label: 'Serviço Prestado', placeholder: 'Ex: Encanador, Eletricista, Limpeza de Sofá...', type: 'text', required: true },
|
|
{ id: 'urgency', label: 'Resolve qual urgência?', placeholder: 'Ex: Vazamentos, Curto-circuito, Sujeira pesada...', type: 'text' },
|
|
{ id: 'city', label: 'Cidade/Região de Atendimento', placeholder: 'Ex: Grande São Paulo', type: 'text', required: true },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Foque na solução rápida de problemas. Passe confiança, segurança e experiência. Use chamadas claras para solicitar um orçamento no WhatsApp.',
|
|
image_style: 'Profissional sorrindo com uniforme, ferramentas de trabalho, ambiente limpo e seguro, transmitindo confiança',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_ENGAGEMENT', // Usually WhatsApp messages
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'lawyer',
|
|
name: 'Advogados / Escritórios',
|
|
icon: '⚖️',
|
|
themeColor: 'bg-slate-900/40 border-slate-500/50',
|
|
accentColor: '#64748b',
|
|
fields: [
|
|
{ id: 'specialty', label: 'Especialidade', placeholder: 'Ex: Direito Trabalhista, Previdenciário, Família...', type: 'text', required: true },
|
|
{ id: 'target_client', label: 'Cliente Ideal', placeholder: 'Ex: Trabalhador sem registro, Aposentados...', type: 'text' },
|
|
{ id: 'action', label: 'Qual direito proteger/buscar?', placeholder: 'Ex: Revisão de aposentadoria, acerto rescisório...', type: 'textarea' },
|
|
],
|
|
ai_guidelines: {
|
|
copy_rules: 'Siga rigorosamente o código de ética da OAB: seja informativo, não mercantilista. Evite prometer ganhos de causa. Foco em orientação jurídica e defesa de direitos.',
|
|
image_style: 'Ambiente de escritório sério, livros de direito, balança da justiça discreta, cores sóbrias (azul marinho, cinza, preto), profissionalismo',
|
|
},
|
|
meta_defaults: {
|
|
objective: 'OUTCOME_LEADS',
|
|
targeting_template: 'broad_brazil',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
},
|
|
{
|
|
id: 'festa_infantil',
|
|
name: 'Festa Infantil / Produto de Entrada',
|
|
icon: '🎉',
|
|
themeColor: 'bg-pink-900/40 border-pink-500/50',
|
|
accentColor: '#ec4899',
|
|
fields: [
|
|
{ id: 'product_name', label: 'O que você vende? (produto de entrada)', placeholder: 'Ex: Kit Festa Mágica IA — convites, painéis e lembrancinhas personalizados', type: 'text', required: true },
|
|
{ id: 'offer', label: 'Oferta + Preço (o gancho do anúncio)', placeholder: 'Ex: Kit completo por apenas R$9,99 no Pix — acesso imediato', type: 'text', required: true },
|
|
{ id: 'payment', label: 'Formas de pagamento / vantagem', placeholder: 'Ex: Pix (libera na hora) ou cartão em até 12x', type: 'text' },
|
|
{ id: 'whats_included', label: 'O que está incluso / transformação', placeholder: 'Ex: convite animado, painel, topo de bolo, lembrancinhas — tudo editável e pronto em minutos', type: 'textarea', required: true },
|
|
{ id: 'pain_point', label: 'Dor / desejo do cliente', placeholder: 'Ex: quer uma festa linda sem gastar fortuna nem perder dias procurando decoração', type: 'textarea' },
|
|
{ id: 'bonus', label: 'Bônus / garantia / urgência (opcional)', placeholder: 'Ex: + 3 temas de bônus hoje · garantia de 7 dias · oferta de lançamento', type: 'text' },
|
|
],
|
|
ai_guidelines: {
|
|
// Copy de resposta direta para tripwire/low-ticket: o objetivo é a COMPRA
|
|
// de entrada barata, com o lucro vindo do funil (order bump/upsell).
|
|
copy_rules:
|
|
'PRODUTO: um ESTÚDIO self-service de IA para festas infantis (NÃO é kit pronto entregue por e-mail). Funciona em 3 passos: 1) a pessoa envia uma foto do filho; 2) a IA cria o avatar da criança em personagem 3D (grátis); 3) ela escolhe entre 33 tipos de artes (convites, topo de bolo, lembrancinhas, tags e mais) e GERA as que quiser, baixa na hora e imprime. Modelo: R$9,99 = 10 créditos, 1 crédito por arte, pagamento único, recarrega se quiser mais. ' +
|
|
'TOM/REGRAS: É um produto de ENTRADA (tripwire) para pais/mães — objetivo é a COMPRA imediata. ' +
|
|
'SEMPRE use verbos de criação ("você cria", "você gera", "monte", "personalize") — NUNCA "receba", "compre o kit", "entregamos", "kit pronto". A pessoa faz ela mesma. ' +
|
|
'Use a mecânica única como gancho: foto → avatar 3D do filho (grátis) → escolher e gerar as artes. Isso é o diferencial, não "praticidade" genérica. ' +
|
|
'Lidere pelo preço-âncora (R$9,99 = 10 artes) e pelo instantâneo ("gera e baixa na hora"). Mencione Pix/cartão quando houver. ' +
|
|
'Urgência honesta (oferta de lançamento/avatar grátis), nunca falsa escassez. ' +
|
|
'CTA de compra (SHOP_NOW ou GET_OFFER). Texto específico e escaneável — sem clichê, sem encher linguiça.',
|
|
image_style:
|
|
'Festa infantil mágica e encantadora, cores vibrantes e alegres, elementos lúdicos (balões, estrelas, brilho), tema de aniversário, visual limpo com destaque para o produto/oferta, alto contraste para parar o feed',
|
|
},
|
|
meta_defaults: {
|
|
// Low-ticket vive ou morre por otimização de COMPRA via Pixel/CAPI.
|
|
objective: 'OUTCOME_SALES',
|
|
targeting_template: 'parents_kids',
|
|
bid_strategy: 'VOLUME',
|
|
}
|
|
}
|
|
];
|
|
|
|
export function getSkin(id: string): SkinConfig {
|
|
return SYSTEM_SKINS.find(s => s.id === id) || SYSTEM_SKINS[0];
|
|
}
|