<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class RoleMiddleware
{
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request, Closure $next, ...$roles)
    {
        // 1. Pastikan user sudah login
        if (!Auth::check()) {
            return redirect('/login');
        }

        // 2. Ambil role user dan bersihkan (trim + strtolower)
        $userRole = strtolower(trim(Auth::user()->role));
        
        // 3. Bersihkan daftar role yang diizinkan dari spasi tambahan
        $allowedRoles = array_map(function($role) {
            return strtolower(trim($role));
        }, $roles);

        // 4. Cek akses
        if (!in_array($userRole, $allowedRoles)) {
            // Jika gagal, tampilkan pesan error atau redirect
            abort(403, 'ANDA TIDAK MEMILIKI AKSES KE HALAMAN INI.');
        }

        return $next($request);
    }
}