<?php

namespace Database\Seeders;

use App\Models\Admin\Menu;
use App\Models\Admin\TipoUsuario;
use Illuminate\Database\Seeder;

class PrivilegiosSeeder extends Seeder
{
    public function run(): void
    {
        $menusControlables = Menu::activos()->whereNotNull('route_pattern')->get();

        // Super puede llamarse SUPER, SUPER ADMIN, etc.
        $super = TipoUsuario::whereIn('tipo_usuario', ['SUPER', 'SUPER ADMIN'])
            ->orWhere('tipo_usuario', 'like', 'SUPER%')
            ->first();

        if ($super) {
            // No es estrictamente necesario (porque isSuperAdmin() tiene bypass),
            // pero deja el registro completo.
            $super->menus()->syncWithoutDetaching($menusControlables->pluck('id'));
        }

        $usuario = TipoUsuario::where('tipo_usuario', 'USUARIO')->first();
        if ($usuario) {
            $ids = Menu::activos()
                ->whereIn('route_pattern', ['dashboard', 'profile.*'])
                ->pluck('id');

            $usuario->menus()->sync($ids);
        }
    }
}
