<?php
include '../config.php';

$SECRET_TOKEN = "rxQw9udYO8sxkP9vxuQ8JUWXWFvBvI";

$gelen_token = isset($_POST['token']) ? $_POST['token'] : '';

if ($gelen_token !== $SECRET_TOKEN) {
    http_response_code(401);
    echo json_encode(['durum' => 'hata', 'mesaj' => 'Yetkisiz Erisim!']);
    exit;
}

$gonderen_id = isset($_POST['gonderen_id']) ? $_POST['gonderen_id'] : null;
$alan_id = isset($_POST['alan_id']) ? $_POST['alan_id'] : null;
$msj = isset($_POST['icerik']) ? $_POST['icerik'] : '';

if (!$gonderen_id || !$alan_id || empty($msj)) {
    http_response_code(400);
    echo json_encode(['durum' => 'hata', 'mesaj' => 'Eksik parametreler!']);
    exit;
}

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}

$zaman = time();

try {
    $query = $db->prepare("INSERT INTO mesajlar (gonderen_id, alan_id, icerik, ip, zaman) VALUES (:gonderen_id, :alan_id, :icerik, :ip, :zaman)");

    $insert = $query->execute([
        ':gonderen_id' => $gonderen_id,
        ':alan_id' => $alan_id,
        ':icerik' => $msj,
        ':ip' => "::3",
        ':zaman' => $zaman
    ]);

    if ($insert) {
        $uquery = $db->prepare("UPDATE mesajlar SET okundu =? WHERE alan_id=? AND gonderen_id=?"); 
        $update = $uquery->execute(array( 1, $gonderen_id, $alan_id)); 

        $url = "https://app.heysen.net/admin/functions.php";

        $bilgi = [
            'from' => $gonderen_id,
            'to' => $alan_id,
            'type' => 'bildirim_gonder',
            'type2' => 'mesaj'
        ];

        $ch = curl_init();

        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => $bilgi
        ]);

        curl_exec($ch);
        curl_close($ch);

        http_response_code(200);
        echo json_encode(['durum' => 'basarili', 'mesaj' => 'Mesaj basariyla gonderildi.']);
    } else {
        http_response_code(500);
        echo json_encode(['durum' => 'hata', 'mesaj' => 'Mesaj gonderilirken bir hata olustu.']);
    }

} catch (PDOException $e) {
    http_response_code(500);
    echo json_encode(['durum' => 'hata', 'mesaj' => 'Veritabani hatasi olustu.']);
}
?>