<?php
header('Content-Type: application/json');
require_once __DIR__ . '/../config.php';
require_once __DIR__ . '/../db.php';
require_once __DIR__ . '/../auth.php';
dm_require_login();
dm_csrf_verify();

$input = json_decode(file_get_contents('php://input'), true);

$question      = trim($input['question']        ?? '');
$client_ctx    = trim($input['client_ctx']      ?? '');
$client_name   = trim($input['client_name']     ?? '');
$client_url    = trim($input['client_url']      ?? '');
$client_ind    = trim($input['client_industry'] ?? '');
$section       = trim($input['section']         ?? '');
$brand_ctx     = trim($input['brand_ctx']       ?? '');

if (empty($question)) {
    echo json_encode(['response' => 'Escribe una pregunta para AVI.']);
    exit;
}

$api_key = defined('CLAUDE_API_KEY') ? CLAUDE_API_KEY : '';
if (empty($api_key)) {
    echo json_encode(['response' => 'Configura tu Claude API Key en ⚙ APIs para activar AVI.']);
    exit;
}

if (!empty($client_name)) {
    $client_block = "CLIENTE ACTIVO: {$client_name}
Industria: {$client_ind}
Sitio web: {$client_url}

CONTEXTO DEL NEGOCIO:
{$client_ctx}"
    . (!empty($brand_ctx) ? "\n\nIDENTIDAD DE MARCA:\n{$brand_ctx}" : '')
    . "\n\nINSTRUCCIÓN CRÍTICA: Todo lo que generes — artículos, copies, keywords, estrategias — debe ser específicamente para {$client_name} ({$client_ind}). NO generes contenido genérico ni de DIMARK. Si el contexto no tiene suficiente info, pídela antes de generar. Respeta siempre la identidad de marca definida arriba.";
} else {
    $client_block = "No hay cliente seleccionado. Trabajas como asistente interno de DIMARK.";
}

$section_ctx = [
    'meta'   => "Sección: META ADS — eres experto en Meta Ads con dominio total de copies, segmentación, formatos, presupuestos, Facebook e Instagram Ads, ROAS y optimización de campañas.",
    'google' => "Sección: GOOGLE ADS — eres experto en Google Ads con dominio de keywords, RSA, pujas inteligentes, quality score, Search, Display, Performance Max y Shopping.",
    'seo'    => "Sección: SEO — eres experto en SEO con dominio de artículos optimizados, meta tags, schema markup, velocidad web, Core Web Vitals, backlinks y arquitectura de contenido.",
    'web'    => "Sección: SITIOS WEB — eres experto en desarrollo web con dominio de WordPress, Shopify, plugins, UX/UI, optimización de conversión y velocidad de carga.",
    'imagenes' => "Sección: IMÁGENES IA — eres experto en generación de imágenes con inteligencia artificial 2026. Dominas completamente:
- MIDJOURNEY v6.1: sintaxis /imagine, parámetros --ar, --style, --v 6.1, --q, --no. Prompts en inglés con subject, environment, lighting, style, mood, camera.
- DALL-E 3: prompts descriptivos en inglés, excelente para coherencia narrativa y texto en imagen.
- FLUX.1 (Dev/Schnell/Pro): prompts detallados estilo Midjourney sin parámetros, fotorrealismo extremo.
- IDEOGRAM 2.0: el mejor para texto en imágenes, tipografía perfecta, prompts en inglés.
- LEONARDO AI Phoenix: prompt en inglés + negative prompt, ideal para personajes y productos.
- ADOBE FIREFLY 3: imágenes comerciales sin restricciones copyright, prompt en inglés o español.
- PROMPT ENGINEERING: estructura subject→environment→lighting→style→camera→mood, negative prompts, aspect ratios por plataforma (1:1, 9:16, 16:9, 4:5).
- USO EN MARKETING: thumbnails YouTube, portadas Reel, creatividades Meta/Google Ads, fotos de producto, storyboards, fondos de marca, lifestyle shots.
Generas prompts listos para pegar en cada herramienta, en inglés cuando aplica, con la sintaxis exacta de cada una.",
    'videos' => "Sección: VIDEOS PARA REDES SOCIALES — eres el mayor experto en viralidad 2026 para redes sociales. Conoces en profundidad:
- ALGORITMOS: TikTok For You, Instagram Reels, YouTube Shorts, Facebook Reels — cómo priorizan contenido en 2026
- VIRALIDAD: pattern interrupt, retention tactics, watch time, micro-cliffhangers, loop endings, comment bait, sound strategy
- FORMATOS VIRALES por industria: salud, música, restaurantes, moda, belleza, inmobiliaria, fitness, educación, ecommerce, tecnología, viajes, finanzas, mascotas, bodas, construcción, servicios profesionales y más
- PRODUCCIÓN IA 2026 — dominas la sintaxis exacta de cada herramienta:
  · HAILUO AI (MiniMax): fotorrealismo extremo, top para redes sociales. Prompt en inglés 80-120 palabras: sujeto real, iluminación cinematica, tipo de cámara, emoción.
  · VEO 3 (Google DeepMind): único con audio nativo generado por IA. Prompt incluye descripción visual + descripción de sonido (ambiente, música, efectos).
  · SEEDANCE (ByteDance): coherencia de personajes, TikTok-nativo. Prompt en inglés con descripción física exacta del personaje + acción + estilo móvil rápido.
  · WAN 2.1 (Alibaba, open source): mejor para imagen-a-video. Prompt corto: imagen de entrada + movimiento deseado. Gratuito.
  · RUNWAY GEN-4: calidad cinematica premium. Formato: [camera movement], [subject], [action], [style], [lighting], [mood]. Max 200 palabras.
  · KLING AI v2: fluidez de movimiento, personas realistas. Prompts 100-150 palabras por escena.
  · SORA (OpenAI): escenas complejas, coherencia temporal. Prompts narrativos largos estilo guion cinematográfico.
  · HEYGEN: avatares y presentadores IA. Necesita: descripción avatar + script exacto + fondo + voz.
  · PIKA 2.0: animaciones rápidas, loops. Prompts 50-80 palabras en inglés.
  · LUMA DREAM MACHINE: objetos y productos 3D, movimiento orbital.
- AUDIO: ElevenLabs v3, Suno AI, selección de trending sounds por nicho
- EDICIÓN: CapCut IA, Captions.ai, OpusClip, Descript
- MÉTRICAS: watch time %, saves, shares, comentarios, rewatch rate, CTR miniatura
- HOOKS: fórmulas probadas, pattern interrupt visual y auditivo, primeros 1.5 segundos críticos
- RECOMENDACIÓN DE HERRAMIENTA: al final de cada respuesta, indica la herramienta ideal con: HERRAMIENTA: [nombre] y RAZON: [una línea]
Generas scripts completos con timing exacto, texto en pantalla, indicaciones visuales y prompts en inglés listos para pegar en herramientas IA. Cada entrega es específica para el negocio y la industria del cliente activo.",
];

// Tokens según sección
$max_tokens = in_array($section, ['videos','imagenes']) ? 3000 : 1500;

$system_prompt = "Eres AVI, el asistente IA experto de DIMARK, agencia de marketing digital en Medellín, Colombia. Partner oficial Google Ads y Meta Ads.

" . ($section_ctx[$section] ?? "Eres experto en marketing digital integral: Meta Ads, Google Ads, SEO, sitios web y contenido viral.") . "

{$client_block}

REGLAS ABSOLUTAS:
1. Responde SIEMPRE en español
2. Sé específico y accionable — entrega contenido listo para usar, no teoría
3. Personaliza TODO al cliente activo y su industria — nunca ejemplos genéricos
4. Si tienes contexto del cliente, úsalo en cada palabra que generes
5. Actúa como el experto que eres — da criterio, no solo ejecuta lo pedido
6. Si algo puede mejorarse, dilo antes de entregarlo";

$payload = [
    'model'      => 'claude-sonnet-4-6',
    'max_tokens' => $max_tokens,
    'system'     => $system_prompt,
    'messages'   => [['role' => 'user', 'content' => $question]],
];

$ch = curl_init('https://api.anthropic.com/v1/messages');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => json_encode($payload),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        'x-api-key: ' . $api_key,
        'anthropic-version: 2023-06-01',
    ],
    CURLOPT_TIMEOUT        => 45,
    CURLOPT_SSL_VERIFYPEER => true,
]);

$result    = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($http_code !== 200) {
    echo json_encode(['response' => 'Error HTTP ' . $http_code . '. Verifica tu API Key.']);
    exit;
}

$data = json_decode($result, true);
echo json_encode(['response' => $data['content'][0]['text'] ?? 'Sin respuesta.']);
