<?php
// include database connection
require_once "../config.php";

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

// get all trades that have expired but not settled
$stmt = $pdo->query("SELECT id, asset, plan, invested, lot, entryrate, expirytime 
                     FROM trade 
                     WHERE closerate=0 AND expirytime <= '$now'");
$trades = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($trades as $t) {
    $apiSymbol = strtoupper(str_replace(":", "", $t['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);
        $closerate = isset($ticker['price']) ? (float)$ticker['price'] : 0.0;
    }

    // calculate return
    $entryrate = (float)$t['entryrate'];
    $amount    = (float)$t['invested'];
    $lot       = (float)$t['lot'];
    $plan      = strtoupper($t['plan']); // BUY or SELL

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

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

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

    echo "Settled Trade ID {$t['id']} | Entry: {$entryrate} Close: {$closerate} | P/L: {$profit}\n";
}
