<?php

namespace App\Services\Ai;

class ReportInsightPromptBuilder
{
    public function build(array $dataset, array $summary): array
    {
        $client = $dataset['client'] ?? null;
        $period = $dataset['period'] ?? [];

        $payload = [
            'client' => [
                'company_name' => $client?->company_name,
                'sector' => $client?->sector ?? null,
            ],
            'period' => $period,
            'summary' => $summary,
            'top_google_campaigns' => array_slice($dataset['google_ads']['campaigns'] ?? [], 0, 8),
            'top_google_keywords' => array_slice($dataset['google_ads']['keywords'] ?? [], 0, 8),
            'top_google_search_terms' => array_slice($dataset['google_ads']['search_terms'] ?? [], 0, 8),
            'top_meta_campaigns' => array_slice($dataset['meta_ads']['campaigns'] ?? [], 0, 8),
            'top_meta_adsets' => array_slice($dataset['meta_ads']['adsets'] ?? [], 0, 8),
            'top_search_console_queries' => array_slice($dataset['search_console']['queries'] ?? [], 0, 10),
            'top_search_console_pages' => array_slice($dataset['search_console']['pages'] ?? [], 0, 10),
            'ga4_channels' => array_slice($dataset['ga4']['channels'] ?? [], 0, 8),
        ];

        return [
            [
                'role' => 'system',
                'content' => 'Sen Türkçe konuşan deneyimli bir performans pazarlama ve SEO analistisin. Yanıtını sadece geçerli JSON olarak ver. Abartılı kesin hükümler kurma; veri yoksa bunu belirt. Müşteriye sade, ajansa uygulanabilir aksiyonlar üret.',
            ],
            [
                'role' => 'user',
                'content' => "Aşağıdaki reklam/SEO rapor verisini yorumla. JSON şeması şu olsun: {\"executive_summary\":\"...\",\"customer_note\":\"...\",\"technical_note\":\"...\",\"risks\":[\"...\"],\"opportunities\":[\"...\"],\"actions\":[\"...\"]}. En fazla 6 risk, 6 fırsat, 8 aksiyon yaz. Veri:\n" . json_encode($payload, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
            ],
        ];
    }
}
