<?php
header('Content-Type: application/json; charset=utf-8');

// CONFIGURE AQUI: substitua pelos dados do seu cPanel / database criado
$db_host = 'localhost';            // geralmente 'localhost' em cPanel
$db_name = 'magptop_lcsyncc3'; // troque pelo nome do DB
$db_user = 'magptop_lcsync3';
$db_pass = 'A35r19y70';

// conecta PDO (mais seguro)
try {
    $dsn = "mysql:host={$db_host};dbname={$db_name};charset=utf8mb4";
    $pdo = new PDO($dsn, $db_user, $db_pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['error' => 'DB connection error']);
    exit;
}

// ler username da query string (ex: ?username=magoteste)
$username = isset($_GET['username']) ? trim($_GET['username']) : '';

if ($username === '') {
    http_response_code(400);
    echo json_encode(['error' => 'username required']);
    exit;
}

// evita SQL injection (usando prepared statements)
$sql = "SELECT username, status, expires_at FROM users WHERE username = :username LIMIT 1";
$stmt = $pdo->prepare($sql);
$stmt->execute([':username' => $username]);
$user = $stmt->fetch();

if (!$user) {
    // usuário não existe
    echo json_encode([
        'username' => $username,
        'valid' => false,
        'reason' => 'not_found'
    ]);
    exit;
}

// checar status e expiração
$now = new DateTime('now', new DateTimeZone('UTC')); // use timezone UTC para consistência
$expires_at = $user['expires_at'] ? new DateTime($user['expires_at'], new DateTimeZone('UTC')) : null;

$is_active = ($user['status'] === 'active') && ( $expires_at === null || $expires_at > $now );

$response = [
    'username' => $user['username'],
    'status' => $user['status'],
    'expires_at' => $user['expires_at'], // pode ser NULL
    'valid' => $is_active ? true : false,
];

if (!$is_active) {
    // motivo
    if ($user['status'] !== 'active') {
        $response['reason'] = 'status_'.$user['status'];
    } elseif ($expires_at !== null && $expires_at <= $now) {
        $response['reason'] = 'expired';
    } else {
        $response['reason'] = 'unknown';
    }
}

echo json_encode($response, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT);
exit;
