<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

require_once "../config.php"; // include your PDO connection

$now = date('Y-m-d H:i:s');

// get all trades that expired but not settled
$stmt = $pdo->query("SELECT * FROM trade WHERE status=0 AND expirytime <= '$now'");
$trades = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($trades as $t) {
    $tradeId   = $t['id'];
    $email     = $t['email'];
    $plan      = strtoupper($t['plan']); // BUY or SELL
    $asset     = $t['asset'];
    $entryrate = (float)$t['entryrate'];
    $amount    = (float)$t['invested'];
    $lot       = (float)$t['lot'];

    // get closerate from Binance
    $apiSymbol = strtoupper(str_replace(":", "", $asset));
    $tickerUrl = "https://api.binance.com/api/v3/ticker/price?symbol={$apiSymbol}";
    $tickerJson = @file_get_contents($tickerUrl);
    $closerate = 0.0;
    if ($tickerJson !== false) {
        $ticker = json_decode($tickerJson, true);
        if (isset($ticker['price'])) {
            $closerate = (float)$ticker['price'];
        }
    }

    // avoid division by zero
    if ($entryrate <= 0) {
        echo "⚠ Trade #$tradeId skipped: invalid entryrate ($entryrate) <br>";
        continue;
    }

    // calculate profit
    $pips = $closerate - $entryrate;
    if ($plan === 'SELL') {
        $pips = $entryrate - $closerate;
    }

    $profit = ($pips / $entryrate) * $amount * $lot;
    $profit = round($profit, 2);

    // update trade table
    $upd = $pdo->prepare("UPDATE trade 
                          SET closerate=:closerate, returnr=:profit, status=1 
                          WHERE id=:id");
    $upd->execute([
        ':closerate' => $closerate,
        ':profit'    => $profit,
        ':id'        => $tradeId
    ]);

    // credit profit to logins table
    if ($profit != 0) {
        $upd2 = $pdo->prepare("UPDATE logins 
                               SET iprofit = iprofit + :profit,
                                   balance = balance + :profit
                               WHERE email=:email");
        $upd2->execute([
            ':profit' => $profit,
            ':email'  => $email
        ]);
    }

    echo "✔ Closed Trade #$tradeId | $asset | Entry: $entryrate | Close: $closerate | P/L: $profit <br>";
}

if (empty($trades)) {
    echo "No trades to close at $now <br>";
}
