<?php

require __DIR__ . '/../vendor/autoload.php';

$app = require_once __DIR__ . '/../bootstrap/app.php';

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$kernel->bootstrap();

try {
    
    echo "Checking user roles:\n";
    echo "====================\n\n";
    
    // Get user ID 1 (from the error stack trace)
    $user = App\Models\User::find(1);
    
    if (!$user) {
        echo "✗ User with ID 1 not found\n";
        exit(1);
    }
    
    echo "User: {$user->name} (ID: {$user->id})\n";
    echo "Email: {$user->email}\n\n";
    
    // Check roles
    echo "Assigned roles:\n";
    $roles = $user->getRoleNames();
    if ($roles->isEmpty()) {
        echo "  ✗ No roles assigned to this user!\n\n";
        echo "Available roles in database:\n";
        $allRoles = Spatie\Permission\Models\Role::all();
        foreach ($allRoles as $role) {
            echo "  - {$role->name}\n";
        }
    } else {
        foreach ($roles as $role) {
            echo "  ✓ {$role}\n";
        }
    }
    
    // Check if user has admin or staff role
    echo "\nRole checks:\n";
    echo "  hasRole('admin'): " . ($user->hasRole('admin') ? '✓ Yes' : '✗ No') . "\n";
    echo "  hasRole('staff'): " . ($user->hasRole('staff') ? '✓ Yes' : '✗ No') . "\n";
    echo "  hasAnyRole(['admin', 'staff']): " . ($user->hasAnyRole(['admin', 'staff']) ? '✓ Yes' : '✗ No') . "\n";
    
} catch (\Exception $e) {
    echo "✗ Error: " . $e->getMessage() . "\n";
    echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
    echo "\nStack trace:\n" . $e->getTraceAsString() . "\n";
}
