<?php
// stripe_onboarding_return.php

require_once 'config.php'; // Includi il file di configurazione con la connessione $pdo

try {
    $accountId = $_GET['account_id'] ?? null;
    $userId = $_GET['user_id'] ?? null;

    if (!$accountId || !$userId) {
        throw new Exception("Parametri mancanti.");
    }

    $account = \Stripe\Account::retrieve($accountId);

    // Aggiorna lo stato dell'account nel database
    $stmt = $pdo->prepare("UPDATE stripe_accounts SET 
                            status = :status, 
                            charges_enabled = :charges_enabled, 
                            payouts_enabled = :payouts_enabled,
                            requirements_currently_due = :requirements_currently_due
                          WHERE user_id = :user_id AND stripe_account_id = :stripe_account_id");

    $status = 'pending';
    if ($account->charges_enabled && $account->payouts_enabled) {
        $status = 'verified';
    } elseif (!empty($account->requirements->currently_due)) {
        $status = 'pending'; // Ancora requisiti da completare
    } else {
        // Potrebbe essere 'under_review' o altri stati intermedi
        $status = 'under_review';
    }

    $stmt->execute([
        ':status' => $status,
        ':charges_enabled' => $account->charges_enabled,
        ':payouts_enabled' => $account->payouts_enabled,
        ':requirements_currently_due' => json_encode($account->requirements->currently_due), // Salva i requisiti come JSON
        ':user_id' => $userId,
        ':stripe_account_id' => $accountId
    ]);

    // Messaggio all'utente basato sullo stato
    if ($status === 'verified') {
        echo "<h1>Account Stripe verificato con successo!</h1>";
        echo "<p>Puoi iniziare a ricevere pagamenti.</p>";
    } else {
        echo "<h1>Verifica account in corso...</h1>";
        echo "<p>Potrebbe essere necessaria una revisione aggiuntiva da parte di Stripe o mancano ancora delle informazioni.</p>";
        // Potresti mostrare qui i requisiti mancanti o un link per riprendere l'onboarding
        // if (!empty($account->requirements->currently_due)) {
        //    echo "<p>Informazioni mancanti:</p><ul>";
        //    foreach ($account->requirements->currently_due as $req) {
        //        echo "<li>" . $req . "</li>";
        //    }
        //    echo "</ul>";
        // }
    }

} catch (Exception $e) {
    http_response_code(500);
    echo "<h1>Errore nella verifica dell'account:</h1>";
    echo "<p>" . $e->getMessage() . "</p>";
}
?>