<?php
session_start();
require __DIR__ . "/../db.php";

if (!isset($_SESSION["user_id"])) {
  http_response_code(401);
  exit("login required");
}

$roomId = (int)($_POST["room_id"] ?? 1);
$body = trim($_POST["body"] ?? "");

$file_path = trim($_POST["file_path"] ?? "");
$file_name = trim($_POST["file_name"] ?? "");
$mime_type = trim($_POST["mime_type"] ?? "");
$file_size = (int)($_POST["file_size"] ?? 0);

// دریافت شناسه پیام برای ریپلای از POST (این خط حیاتی است)
$reply_to_id = isset($_POST["reply_to_id"]) ? (int)$_POST["reply_to_id"] : null;

// اجازه بده پیام فقط فایل باشه یا فقط متن یا هر دو
if ($body === "" && $file_path === "") {
  http_response_code(400);
  exit("empty");
}
if (mb_strlen($body) > 800) {
  http_response_code(400);
  exit("too long");
}

$userId = (int)$_SESSION["user_id"];
$bodySafe = htmlspecialchars($body, ENT_QUOTES, "UTF-8");

$conversationId = 0;

// کوئری INSERT با ستون reply_to_message_id
$stmt = $conn->prepare("INSERT INTO messages (room_id, conversation_id, user_id, body, reply_to_message_id) VALUES (?,?,?,?,?)");
// bind_param با پارامتر اضافی برای reply_to_id (5 پارامتر متغیر)
$stmt->bind_param("iiisi", $roomId, $conversationId, $userId, $bodySafe, $reply_to_id);
$stmt->execute();
$msgId = (int)$stmt->insert_id;

// اگر فایل هست، ذخیره کن
if ($file_path !== "") {
  $ins = $conn->prepare("INSERT INTO attachments (message_id, file_path, file_name, mime_type, file_size) VALUES (?,?,?,?,?)");
  $ins->bind_param("isssi", $msgId, $file_path, $file_name, $mime_type, $file_size);
  $ins->execute();
}

echo "ok";
?>
