<?php
/**
 * analisis/api/chat.php
 * API Backend untuk chatbot spesifik diskusi Trading
 */
session_start();
include '../../config/database.php';
include '../../llm/api/koneksi_gemini.php';

header('Content-Type: application/json');
error_reporting(0);

if (!isset($_SESSION['user_id'])) {
    http_response_code(403);
    echo json_encode(['error' => 'Akses ditolak. Silakan login terlebih dahulu.']);
    exit;
}

$data = json_decode(file_get_contents("php://input"), true);
$message = $data['message'] ?? '';
$history = $data['history'] ?? [];
$initial_analysis = $data['initial_analysis'] ?? '';

if (empty($message)) {
    echo json_encode(['error' => 'Pesan tidak boleh kosong.']);
    exit;
}

$res = mysqli_query($conn, "SELECT gemini_model FROM settings WHERE id = 1");
$cfg = mysqli_fetch_assoc($res);
$g_model = $cfg['gemini_model'] ?? 'gemini-1.5-flash';

$sys_prompt = "
PERAN: Anda adalah Analis Trading Profesional, Pakar Teknikal Saham dan Crypto tingkat dunia (Senior Master Trader).
Konteks: User baru saja melihat hasil analisis grafik trading mereka. Mereka sekarang bertanya kepada Anda untuk berdiskusi lebih lanjut, menanyakan alasan di balik prediksi, atau meminta saran tambahan.
Analisis awal yang diberikan kepada user sebelumnya adalah sebagai berikut:
--------------------
" . substr($initial_analysis, 0, 3000) . "
--------------------

INSTRUKSI:
- Jawablah dengan tegas, profesional, namun mudah dipahami (awam).
- Berikan insight tambahan mengapa chart tersebut bersikap demikian, tanpa bertele-tele.
- Dilarang memberikan saran pasti secara mutlak. Selalu sisipkan disclaimer bahwa trading berisiko.
- Format dengan Markdown untuk memudahkan pembacaan (bold, bullet points jika perlu).
";

// Susun history untuk Gemini/LLM
$hist_ctx = "";
if (!empty($history)) {
    $hist_ctx .= "[RIWAYAT PESAN]\n";
    foreach ($history as $msg) {
        $role = $msg['role'] === 'user' ? 'USER' : 'ASSISTANT';
        $content = strip_tags($msg['content']);
        $hist_ctx .= "$role: " . $content . "\n";
    }
}

// Full prompt ke executeInternalLLM
$full_prompt = $sys_prompt . "\n" . $hist_ctx . "\n[PERINTAH USER SAAT INI]\n" . $message;

$ai_reply = executeInternalLLM(
    $full_prompt, 
    null, 
    0.6, 
    $conn, 
    $cfg, 
    $g_model, 
    null, 
    null, 
    null
);

if ($ai_reply === "FAIL" || empty($ai_reply)) {
    echo json_encode(['error' => 'Gagal terhubung ke AI. Server sibuk.']);
    exit;
}

echo json_encode(['reply' => trim($ai_reply)]);
