<?php
// miniapp/api/me.php
header('Content-Type: application/json; charset=utf-8');

// جلوگیری از نمایش وارنینگ‌ها در خروجی که باعث خرابی JSON می‌شود
error_reporting(0); 

require __DIR__ . '/config.php';

$userId = isset($_GET['user_id']) ? (int)$_GET['user_id'] : 0;
// دریافت نام و نام خانوادگی برای ثبت‌نام احتمالی
$first_name = isset($_GET['first_name']) ? $_GET['first_name'] : 'Unknown';
$username = isset($_GET['username']) ? $_GET['username'] : '';

if ($userId <= 0) {
    echo json_encode(['ok' => false, 'error' => 'شناسه کاربر نامعتبر است']);
    exit;
}

try {
    // 1. تلاش برای پیدا کردن کاربر
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
    $stmt->execute([$userId]);
    $user = $stmt->fetch();

    // 2. اگر کاربر نبود، آن را بساز (Auto-Register)
    if (!$user) {
        $stmtInsert = $pdo->prepare("INSERT INTO users (id, username, first_name, balance, wallet_balance, is_admin) 
                                     VALUES (:id, :u, :f, 0, 0, 0)");
        $stmtInsert->execute([
            ':id' => $userId,
            ':u'  => $username,
            ':f'  => $first_name
        ]);
        
        // دوباره کاربر را می‌خوانیم
        $stmt->execute([$userId]);
        $user = $stmt->fetch();
    }

    // بازگرداندن اطلاعات
    echo json_encode([
        'ok'   => true,
        'data' => [
            'id' => $user['id'],
            'username' => $user['username'],
            'first_name' => $user['first_name'],
            'credit' => (int)($user['balance'] ?? 0), // نام فیلد در فرانت credit است
            'is_admin' => (int)($user['is_admin'] ?? 0)
        ]
    ]);

} catch (PDOException $e) {
    // در صورت خطای دیتابیس، جیسون برمی‌گردانیم نه متن خالی
    echo json_encode([
        'ok' => false, 
        'error' => 'خطای دیتابیس: ' . $e->getMessage()
    ]);
}