<?php

require __DIR__ . '/../vendor/autoload.php';

$app = require_once __DIR__ . '/../bootstrap/app.php';

try {
    $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
    
    echo "Testing middleware resolution:\n";
    echo "================================\n\n";
    
    // Check if Spatie's middleware can be resolved
    $roleMiddleware = $app->make(\Spatie\Permission\Middleware\RoleMiddleware::class);
    echo "✓ RoleMiddleware class can be instantiated\n";
    echo "Class: " . get_class($roleMiddleware) . "\n\n";
    
    // Check router middleware
    $router = $app->make('router');
    $middlewares = $router->getMiddleware();
    
    echo "Registered middleware aliases:\n";
    foreach ($middlewares as $alias => $class) {
        if (in_array($alias, ['role', 'permission', 'role_or_permission'])) {
            echo "  $alias => $class\n";
        }
    }
    
    echo "\n✓ All middleware checks passed!\n";
    
} catch (\Exception $e) {
    echo "✗ Error: " . $e->getMessage() . "\n";
    echo "File: " . $e->getFile() . ":" . $e->getLine() . "\n";
    echo "\nStack trace:\n" . $e->getTraceAsString() . "\n";
}
