<?php

namespace Database\Seeders;

use App\Models\Auth\User;
use App\Models\Auth\Role;
use App\Models\Auth\Permission;
use App\Models\Auth\Department;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\DB;

class AuthSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        // SQLite 不支持 SET FOREIGN_KEY_CHECKS，使用 PRAGMA
        if (DB::getDriverName() === 'sqlite') {
            DB::statement('PRAGMA foreign_keys = OFF;');
        } else {
            DB::statement('SET FOREIGN_KEY_CHECKS=0;');
        }

        // 清空表数据
        DB::table('auth_role_permission')->truncate();
        DB::table('auth_user_role')->truncate();
        Permission::truncate();
        Role::truncate();
        User::truncate();
        Department::truncate();

        $this->createPermissions();
        $this->createRoles();
        $this->createDepartments();
        $this->createUsers();
        $this->assignPermissionsToRole();
        $this->assignRoleToUser();

        $this->command->info('Auth module data seeded successfully!');

        // 恢复外键约束
        if (DB::getDriverName() === 'sqlite') {
            DB::statement('PRAGMA foreign_keys = ON;');
        } else {
            DB::statement('SET FOREIGN_KEY_CHECKS=1;');
        }
    }

    /**
     * 创建权限节点
     */
    private function createPermissions(): void
    {
        $permissions = [
            // 首页顶级菜单
            [
                'title' => '首页',
                'name' => 'home',
                'type' => 'menu',
                'parent_id' => 0,
                'path' => '/home',
                'component' => null,
                'meta' => json_encode([
                    'icon' => 'Dashboard',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                    'affix' => true,
                ]),
                'sort' => 1,
                'status' => 1,
            ],
            // 仪表盘
            [
                'title' => '仪表盘',
                'name' => 'home.dashboard',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为首页菜单的ID
                'path' => '/dashboard',
                'component' => 'home/index',
                'meta' => json_encode([
                    'icon' => 'DataLine',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                    'affix' => true,
                ]),
                'sort' => 1,
                'status' => 1,
            ],
            // 个人中心
            [
                'title' => '个人中心',
                'name' => 'home.profile',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为首页菜单的ID
                'path' => '/ucenter',
                'component' => 'ucenter/index',
                'meta' => json_encode([
                    'icon' => 'User',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '查看个人信息',
                'name' => 'home.profile.view',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为个人中心菜单的ID
                'path' => null,
                'component' => null,
                'meta' => null,
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '编辑个人信息',
                'name' => 'home.profile.update',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为个人中心菜单的ID
                'path' => null,
                'component' => null,
                'meta' => null,
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '修改密码',
                'name' => 'home.profile.change-password',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为个人中心菜单的ID
                'path' => null,
                'component' => null,
                'meta' => null,
                'sort' => 3,
                'status' => 1,
            ],

            // 权限顶级菜单
            [
                'title' => '权限',
                'name' => 'auth',
                'type' => 'menu',
                'parent_id' => 0,
                'path' => '/auth',
                'component' => null,
                'meta' => json_encode([
                    'icon' => 'User',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 2,
                'status' => 1,
            ],
            // 用户管理
            [
                'title' => '用户管理',
                'name' => 'auth.users',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为权限菜单的ID
                'path' => '/auth/user',
                'component' => 'auth/user/index',
                'meta' => json_encode([
                    'icon' => 'UserOutlined',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '查看用户',
                'name' => 'auth.users.view',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.index',
                'component' => null,
                'meta' => null,
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '创建用户',
                'name' => 'auth.users.create',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.store',
                'component' => null,
                'meta' => null,
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '编辑用户',
                'name' => 'auth.users.update',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.update',
                'component' => null,
                'meta' => null,
                'sort' => 3,
                'status' => 1,
            ],
            [
                'title' => '删除用户',
                'name' => 'auth.users.delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.destroy',
                'component' => null,
                'meta' => null,
                'sort' => 4,
                'status' => 1,
            ],
            [
                'title' => '批量删除用户',
                'name' => 'auth.users.batch-delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.batch-delete',
                'component' => null,
                'meta' => null,
                'sort' => 5,
                'status' => 1,
            ],
            [
                'title' => '导出用户',
                'name' => 'auth.users.export',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.export',
                'component' => null,
                'meta' => null,
                'sort' => 6,
                'status' => 1,
            ],
            [
                'title' => '导入用户',
                'name' => 'auth.users.import',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为用户管理菜单的ID
                'path' => 'admin.user.import',
                'component' => null,
                'meta' => null,
                'sort' => 7,
                'status' => 1,
            ],
            // 角色管理
            [
                'title' => '角色管理',
                'name' => 'auth.roles',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为权限菜单的ID
                'path' => '/auth/role',
                'component' => 'auth/role/index',
                'meta' => json_encode([
                    'icon' => 'UserFilled',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '查看角色',
                'name' => 'auth.roles.view',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.index',
                'component' => null,
                'meta' => null,
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '创建角色',
                'name' => 'auth.roles.create',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.store',
                'component' => null,
                'meta' => null,
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '编辑角色',
                'name' => 'auth.roles.update',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.update',
                'component' => null,
                'meta' => null,
                'sort' => 3,
                'status' => 1,
            ],
            [
                'title' => '删除角色',
                'name' => 'auth.roles.delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.destroy',
                'component' => null,
                'meta' => null,
                'sort' => 4,
                'status' => 1,
            ],
            [
                'title' => '批量删除角色',
                'name' => 'auth.roles.batch-delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.batch-delete',
                'component' => null,
                'meta' => null,
                'sort' => 5,
                'status' => 1,
            ],
            [
                'title' => '分配权限',
                'name' => 'auth.roles.assign-permissions',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为角色管理菜单的ID
                'path' => 'admin.role.assign-permissions',
                'component' => null,
                'meta' => null,
                'sort' => 6,
                'status' => 1,
            ],
            // 权限管理
            [
                'title' => '权限管理',
                'name' => 'auth.permissions',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为权限菜单的ID
                'path' => '/auth/permission',
                'component' => 'auth/permission/index',
                'meta' => json_encode([
                    'icon' => 'Lock',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 3,
                'status' => 1,
            ],
            [
                'title' => '查看权限',
                'name' => 'auth.permissions.view',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为权限管理菜单的ID
                'path' => 'admin.permission.index',
                'component' => null,
                'meta' => null,
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '创建权限',
                'name' => 'auth.permissions.create',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为权限管理菜单的ID
                'path' => 'admin.permission.store',
                'component' => null,
                'meta' => null,
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '编辑权限',
                'name' => 'auth.permissions.update',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为权限管理菜单的ID
                'path' => 'admin.permission.update',
                'component' => null,
                'meta' => null,
                'sort' => 3,
                'status' => 1,
            ],
            [
                'title' => '删除权限',
                'name' => 'auth.permissions.delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为权限管理菜单的ID
                'path' => 'admin.permission.destroy',
                'component' => null,
                'meta' => null,
                'sort' => 4,
                'status' => 1,
            ],
            [
                'title' => '批量删除权限',
                'name' => 'auth.permissions.batch-delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为权限管理菜单的ID
                'path' => 'admin.permission.batch-delete',
                'component' => null,
                'meta' => null,
                'sort' => 5,
                'status' => 1,
            ],
            // 部门管理
            [
                'title' => '部门管理',
                'name' => 'auth.departments',
                'type' => 'menu',
                'parent_id' => 0, // 稍后更新为权限菜单的ID
                'path' => '/auth/department',
                'component' => 'auth/department/index',
                'meta' => json_encode([
                    'icon' => 'OfficeBuilding',
                    'hidden' => false,
                    'hiddenBreadcrumb' => false,
                ]),
                'sort' => 4,
                'status' => 1,
            ],
            [
                'title' => '查看部门',
                'name' => 'auth.departments.view',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为部门管理菜单的ID
                'path' => 'admin.department.index',
                'component' => null,
                'meta' => null,
                'sort' => 1,
                'status' => 1,
            ],
            [
                'title' => '创建部门',
                'name' => 'auth.departments.create',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为部门管理菜单的ID
                'path' => 'admin.department.store',
                'component' => null,
                'meta' => null,
                'sort' => 2,
                'status' => 1,
            ],
            [
                'title' => '编辑部门',
                'name' => 'auth.departments.update',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为部门管理菜单的ID
                'path' => 'admin.department.update',
                'component' => null,
                'meta' => null,
                'sort' => 3,
                'status' => 1,
            ],
            [
                'title' => '删除部门',
                'name' => 'auth.departments.delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为部门管理菜单的ID
                'path' => 'admin.department.destroy',
                'component' => null,
                'meta' => null,
                'sort' => 4,
                'status' => 1,
            ],
            [
                'title' => '批量删除部门',
                'name' => 'auth.departments.batch-delete',
                'type' => 'button',
                'parent_id' => 0, // 稍后更新为部门管理菜单的ID
                'path' => 'admin.department.batch-delete',
                'component' => null,
                'meta' => null,
                'sort' => 5,
                'status' => 1,
            ],
        ];

        foreach ($permissions as $permission) {
            Permission::create($permission);
        }

        // 更新parent_id
        $this->updateParentIds();
    }

    /**
     * 更新parent_id，建立层级关系
     */
    private function updateParentIds(): void
    {
        $permissions = Permission::all();

        // 获取顶级菜单ID
        $homeMenu = $permissions->where('name', 'home')->first();
        $authMenu = $permissions->where('name', 'auth')->first();

        // 获取首页子菜单ID
        $dashboardMenu = $permissions->where('name', 'home.dashboard')->first();
        $profileMenu = $permissions->where('name', 'home.profile')->first();

        // 获取权限子菜单ID
        $usersMenu = $permissions->where('name', 'auth.users')->first();
        $rolesMenu = $permissions->where('name', 'auth.roles')->first();
        $permissionsMenu = $permissions->where('name', 'auth.permissions')->first();
        $departmentsMenu = $permissions->where('name', 'auth.departments')->first();

        // 更新首页子菜单的parent_id
        if ($homeMenu) {
            if ($dashboardMenu) {
                $dashboardMenu->update(['parent_id' => $homeMenu->id]);
            }
            if ($profileMenu) {
                $profileMenu->update(['parent_id' => $homeMenu->id]);
            }
        }

        // 更新权限子菜单的parent_id
        if ($authMenu) {
            if ($usersMenu) {
                $usersMenu->update(['parent_id' => $authMenu->id]);
            }
            if ($rolesMenu) {
                $rolesMenu->update(['parent_id' => $authMenu->id]);
            }
            if ($permissionsMenu) {
                $permissionsMenu->update(['parent_id' => $authMenu->id]);
            }
            if ($departmentsMenu) {
                $departmentsMenu->update(['parent_id' => $authMenu->id]);
            }
        }

        // 更新按钮权限的parent_id - 首页部分
        $profileViewBtn = $permissions->where('name', 'home.profile.view')->first();
        $profileUpdateBtn = $permissions->where('name', 'home.profile.update')->first();
        $profilePasswordBtn = $permissions->where('name', 'home.profile.change-password')->first();
        if ($profileMenu) {
            if ($profileViewBtn) {
                $profileViewBtn->update(['parent_id' => $profileMenu->id]);
            }
            if ($profileUpdateBtn) {
                $profileUpdateBtn->update(['parent_id' => $profileMenu->id]);
            }
            if ($profilePasswordBtn) {
                $profilePasswordBtn->update(['parent_id' => $profileMenu->id]);
            }
        }

        // 更新按钮权限的parent_id - 用户管理
        $userViewBtn = $permissions->where('name', 'auth.users.view')->first();
        $userCreateBtn = $permissions->where('name', 'auth.users.create')->first();
        $userUpdateBtn = $permissions->where('name', 'auth.users.update')->first();
        $userDeleteBtn = $permissions->where('name', 'auth.users.delete')->first();
        $userBatchDeleteBtn = $permissions->where('name', 'auth.users.batch-delete')->first();
        $userExportBtn = $permissions->where('name', 'auth.users.export')->first();
        $userImportBtn = $permissions->where('name', 'auth.users.import')->first();
        if ($usersMenu) {
            if ($userViewBtn) {
                $userViewBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userCreateBtn) {
                $userCreateBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userUpdateBtn) {
                $userUpdateBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userDeleteBtn) {
                $userDeleteBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userBatchDeleteBtn) {
                $userBatchDeleteBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userExportBtn) {
                $userExportBtn->update(['parent_id' => $usersMenu->id]);
            }
            if ($userImportBtn) {
                $userImportBtn->update(['parent_id' => $usersMenu->id]);
            }
        }

        // 更新按钮权限的parent_id - 角色管理
        $roleViewBtn = $permissions->where('name', 'auth.roles.view')->first();
        $roleCreateBtn = $permissions->where('name', 'auth.roles.create')->first();
        $roleUpdateBtn = $permissions->where('name', 'auth.roles.update')->first();
        $roleDeleteBtn = $permissions->where('name', 'auth.roles.delete')->first();
        $roleBatchDeleteBtn = $permissions->where('name', 'auth.roles.batch-delete')->first();
        $roleAssignBtn = $permissions->where('name', 'auth.roles.assign-permissions')->first();
        if ($rolesMenu) {
            if ($roleViewBtn) {
                $roleViewBtn->update(['parent_id' => $rolesMenu->id]);
            }
            if ($roleCreateBtn) {
                $roleCreateBtn->update(['parent_id' => $rolesMenu->id]);
            }
            if ($roleUpdateBtn) {
                $roleUpdateBtn->update(['parent_id' => $rolesMenu->id]);
            }
            if ($roleDeleteBtn) {
                $roleDeleteBtn->update(['parent_id' => $rolesMenu->id]);
            }
            if ($roleBatchDeleteBtn) {
                $roleBatchDeleteBtn->update(['parent_id' => $rolesMenu->id]);
            }
            if ($roleAssignBtn) {
                $roleAssignBtn->update(['parent_id' => $rolesMenu->id]);
            }
        }

        // 更新按钮权限的parent_id - 权限管理
        $permViewBtn = $permissions->where('name', 'auth.permissions.view')->first();
        $permCreateBtn = $permissions->where('name', 'auth.permissions.create')->first();
        $permUpdateBtn = $permissions->where('name', 'auth.permissions.update')->first();
        $permDeleteBtn = $permissions->where('name', 'auth.permissions.delete')->first();
        $permBatchDeleteBtn = $permissions->where('name', 'auth.permissions.batch-delete')->first();
        if ($permissionsMenu) {
            if ($permViewBtn) {
                $permViewBtn->update(['parent_id' => $permissionsMenu->id]);
            }
            if ($permCreateBtn) {
                $permCreateBtn->update(['parent_id' => $permissionsMenu->id]);
            }
            if ($permUpdateBtn) {
                $permUpdateBtn->update(['parent_id' => $permissionsMenu->id]);
            }
            if ($permDeleteBtn) {
                $permDeleteBtn->update(['parent_id' => $permissionsMenu->id]);
            }
            if ($permBatchDeleteBtn) {
                $permBatchDeleteBtn->update(['parent_id' => $permissionsMenu->id]);
            }
        }

        // 更新按钮权限的parent_id - 部门管理
        $deptViewBtn = $permissions->where('name', 'auth.departments.view')->first();
        $deptCreateBtn = $permissions->where('name', 'auth.departments.create')->first();
        $deptUpdateBtn = $permissions->where('name', 'auth.departments.update')->first();
        $deptDeleteBtn = $permissions->where('name', 'auth.departments.delete')->first();
        $deptBatchDeleteBtn = $permissions->where('name', 'auth.departments.batch-delete')->first();
        if ($departmentsMenu) {
            if ($deptViewBtn) {
                $deptViewBtn->update(['parent_id' => $departmentsMenu->id]);
            }
            if ($deptCreateBtn) {
                $deptCreateBtn->update(['parent_id' => $departmentsMenu->id]);
            }
            if ($deptUpdateBtn) {
                $deptUpdateBtn->update(['parent_id' => $departmentsMenu->id]);
            }
            if ($deptDeleteBtn) {
                $deptDeleteBtn->update(['parent_id' => $departmentsMenu->id]);
            }
            if ($deptBatchDeleteBtn) {
                $deptBatchDeleteBtn->update(['parent_id' => $departmentsMenu->id]);
            }
        }
    }

    /**
     * 创建角色
     */
    private function createRoles(): void
    {
        Role::insert([
            [
                'name' => '超级管理员',
                'code' => 'super_admin',
                'description' => '拥有系统所有权限',
                'sort' => 1,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'name' => '管理员',
                'code' => 'admin',
                'description' => '拥有系统管理权限',
                'sort' => 2,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'name' => '普通用户',
                'code' => 'user',
                'description' => '普通用户角色',
                'sort' => 3,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
        ]);
    }

    /**
     * 创建部门
     */
    private function createDepartments(): void
    {
        Department::insert([
            [
                'name' => '总公司',
                'parent_id' => 0,
                'leader' => '张三',
                'phone' => '13800138000',
                'sort' => 1,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'name' => '技术部',
                'parent_id' => 0,
                'leader' => '李四',
                'phone' => '13800138001',
                'sort' => 1,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'name' => '运营部',
                'parent_id' => 0,
                'leader' => '王五',
                'phone' => '13800138002',
                'sort' => 2,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'name' => '财务部',
                'parent_id' => 0,
                'leader' => '赵六',
                'phone' => '13800138003',
                'sort' => 3,
                'status' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ],
        ]);

        // 更新parent_id为实际ID
        $departments = Department::all();
        $rootDept = $departments->where('name', '总公司')->first();
        $techDept = $departments->where('name', '技术部')->first();
        $opsDept = $departments->where('name', '运营部')->first();
        $financeDept = $departments->where('name', '财务部')->first();

        if ($rootDept) {
            $techDept->update(['parent_id' => $rootDept->id]);
            $opsDept->update(['parent_id' => $rootDept->id]);
            $financeDept->update(['parent_id' => $rootDept->id]);
        }
    }

    /**
     * 创建用户
     */
    private function createUsers(): void
    {
        $departments = Department::all();
        $techDept = $departments->where('name', '技术部')->first();

        User::insert([
            [
                'username' => 'admin',
                'password' => Hash::make('admin888'),
                'real_name' => '超级管理员',
                'email' => 'admin@example.com',
                'phone' => '13800138888',
                'department_id' => $techDept ? $techDept->id : null,
                'avatar' => null,
                'status' => 1,
                'last_login_at' => null,
                'last_login_ip' => null,
                'created_at' => now(),
                'updated_at' => now(),
            ],
            [
                'username' => 'manager',
                'password' => Hash::make('123456789'),
                'real_name' => '部门经理',
                'email' => 'manager@example.com',
                'phone' => '13800138889',
                'department_id' => $techDept ? $techDept->id : null,
                'avatar' => null,
                'status' => 1,
                'last_login_at' => null,
                'last_login_ip' => null,
                'created_at' => now(),
                'updated_at' => now(),
            ],
        ]);
    }

    /**
     * 分配权限给角色
     */
    private function assignPermissionsToRole(): void
    {
        $permissions = Permission::all();
        $superAdminRole = Role::where('code', 'super_admin')->first();

        if ($superAdminRole) {
            $permissionIds = $permissions->pluck('id')->toArray();
            $superAdminRole->permissions()->attach($permissionIds);
        }
    }

    /**
     * 分配角色给用户
     */
    private function assignRoleToUser(): void
    {
        $superAdminRole = Role::where('code', 'super_admin')->first();
        $adminRole = Role::where('code', 'admin')->first();

        $adminUser = User::where('username', 'admin')->first();
        $managerUser = User::where('username', 'manager')->first();

        if ($adminUser && $superAdminRole) {
            $adminUser->roles()->attach([$superAdminRole->id]);
        }

        if ($managerUser && $adminRole) {
            $managerUser->roles()->attach([$adminRole->id]);
        }
    }
}
