<?php
// ═══════════════════════════════════════════════════════════
// remove_agent_coin.php
// Admin থেকে Agent-এর coin balance কমানোর (deduct) কাজ করে।
// শুধু balance কমায়, agent-কে disable/remove করে না —
// সেটা আলাদা ফাইল (remove_agent.php) করে।
// ═══════════════════════════════════════════════════════════
session_start();
if (!isset($_SESSION['unohs'])) {
    header("Location: index.php");
    exit();
}
include "conn.php";

if ($_SERVER['REQUEST_METHOD'] !== 'POST' || !isset($_POST['agent_userid']) || !isset($_POST['remove_amount'])) {
    header("Location: manage_agents.php?msg=invalid");
    exit();
}

$agentUserId  = intval($_POST['agent_userid']);
$removeAmount = floatval($_POST['remove_amount']);

if ($agentUserId <= 0 || $removeAmount <= 0) {
    header("Location: manage_agents.php?msg=invalid");
    exit();
}

// বর্তমান balance আগে check করা — যাতে balance-এর চেয়ে বেশি কখনো কমানো না যায়
$stmt = $conn->prepare("SELECT motta FROM shonu_kaichila WHERE balakedara = ?");
$stmt->bind_param("i", $agentUserId);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$stmt->close();

$currentBalance = $row ? floatval($row['motta']) : 0;

if ($removeAmount > $currentBalance) {
    header("Location: manage_agents.php?msg=insufficient");
    exit();
}

// নিরাপদে balance কমানো (SQL-এই বিয়োগ করা হচ্ছে, race-condition এড়াতে)
$stmt2 = $conn->prepare("UPDATE shonu_kaichila SET motta = motta - ? WHERE balakedara = ?");
$stmt2->bind_param("di", $removeAmount, $agentUserId);

if ($stmt2->execute()) {
    $msg = 'coin_removed';
} else {
    $msg = 'error';
}
$stmt2->close();
$conn->close();

header("Location: manage_agents.php?msg=" . $msg);
exit();
