<?php
require_once 'config/db.php';

$client_id = '3658695067033012';
$client_secret = 'GZBg63xJNM9Eeb2cOhF9JwsOEv6vTxo7';
$redirect_uri = 'https://sistema.compranet.com.co/marketplace/mercadolibre/callback.php';

if (isset($_GET['code'])) {
    $code = $_GET['code'];

    $url = 'https://api.mercadolibre.com/oauth/token';

    $data = [
        'grant_type' => 'authorization_code',
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'code' => $code,
        'redirect_uri' => $redirect_uri
    ];

    $options = [
        'http' => [
            'header' => "Content-Type: application/x-www-form-urlencoded",
            'method' => 'POST',
            'content' => http_build_query($data)
        ]
    ];

    $context = stream_context_create($options);
    $response = file_get_contents($url, false, $context);
    $token_data = json_decode($response, true);

    if (isset($token_data['access_token'])) {
        saveTokens($conn, $token_data);
        echo "Tokens guardados exitosamente.";
    } else {
        echo "Error al obtener el token.";
    }
}

function saveTokens(mysqli $conn, array $token_data)
{
    $stmt = $conn->prepare("
        INSERT INTO tb_marketplace_tokens
            (idMP, user_id, access_token, refresh_token, token_type, expires_in, updated_at)
        VALUES (?, ?, ?, ?, ?, ?, NOW())
        ON DUPLICATE KEY UPDATE
            access_token   = VALUES(access_token),
            refresh_token  = VALUES(refresh_token),
            token_type     = VALUES(token_type),
            expires_in     = VALUES(expires_in),
            updated_at     = NOW()
    ");

    // Toma el user_id que viene en la respuesta OAuth
    $user_id       = '402909745';
    $idMP          = 1;
    $access_token  = $token_data['access_token'];
    $refresh_token = $token_data['refresh_token'];
    $token_type    = $token_data['token_type'];
    $expires_in    = $token_data['expires_in'];

    $stmt->bind_param(
        "issssi",
        $idMP,
        $user_id,
        $access_token,
        $refresh_token,
        $token_type,
        $expires_in
    );
    $stmt->execute();
    $stmt->close();

    echo "✅ Tokens guardados (access & refresh) y timestamp actualizado.\n";
}
