<?php
include "../../conn.php";
include "../../functions2.php";

header('Content-Type: application/json; charset=utf-8');
header('Strict-Transport-Security: max-age=31536000');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization');
header('Access-Control-Allow-Credentials: true');
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
header('Access-Control-Allow-Origin: ' . $origin);
header('vary: Origin');

date_default_timezone_set("Asia/Kolkata");
$shnunc = date("Y-m-d H:i:s");
$res = [
    'code' => 11,
    'msg' => 'Method not allowed',
    'msgCode' => 12,
    'serviceNowTime' => $shnunc,
];

if ($_SERVER['REQUEST_METHOD'] != 'GET') {
    $bearer = explode(" ", $_SERVER['HTTP_AUTHORIZATION']);
    $author = $bearer[1];
    $is_jwt_valid = is_jwt_valid($author);
    $data_auth = json_decode($is_jwt_valid, 1);

    if($data_auth['status'] === 'Success') {
        $user_id = $data_auth['payload']['id'];

        $investments_query = "SELECT ui.*, ip.name as plan_name, ip.interest_rate, ip.duration_days
                             FROM user_investments ui
                             JOIN investment_plans ip ON ui.plan_id = ip.id
                             WHERE ui.user_id = $user_id
                             ORDER BY ui.id DESC";
        $investments_result = $conn->query($investments_query);

        $investments = [];
        while ($investment = $investments_result->fetch_assoc()) {
            $invested_at = strtotime($investment['invested_at']);
            $last_claim = $investment['last_claim'] ? strtotime($investment['last_claim']) : $invested_at;
            $now = time();

            $investment['daily_return'] = ($investment['amount'] * $investment['interest_rate'] / 100) / 30;
            $investment['next_claim_time'] = date('Y-m-d H:i:s', $last_claim + 86400); // 24 hours later
            $investment['can_claim'] = ($now - $last_claim) >= 86400;
            $investment['time_until_claim'] = max(0, 86400 - ($now - $last_claim));

            // Check if investment period has ended
            $duration_seconds = $investment['duration_days'] * 86400;
            $investment['is_expired'] = ($now - $invested_at) > $duration_seconds;

            $investments[] = $investment;
        }

        $res['data'] = $investments;
        $res['code'] = 0;
        $res['msg'] = 'Success';
        $res['msgCode'] = 0;
        http_response_code(200);
        echo json_encode($res);
    } else {
        $res['code'] = 4;
        $res['msg'] = 'No operation permission';
        $res['msgCode'] = 2;
        http_response_code(401);
        echo json_encode($res);
    }
} else {
    http_response_code(405);
    echo json_encode($res);
}
?>
