'dashboard', 'description' => 'Dashboard', 'bits' => Permission::ALL_PERMS, ], [ 'scope' => 'franchisor_franchisee', 'description' => 'Franqueados', 'bits' => Permission::ALL_PERMS, ], [ 'scope' => 'franchisor_packages', 'description' => 'Pacotes', 'bits' => Permission::MENU | Permission::VIEW | Permission::ADD | Permission::EDIT, ], [ 'scope' => 'franchisor_products', 'description' => 'Produtos', 'bits' => Permission::CRUD, ], [ 'scope' => 'franchisor_tbr', 'description' => 'TBR', 'bits' => Permission::MENU | Permission::VIEW | Permission::ADD | Permission::EDIT, ], [ 'scope' => 'franchisor_financial', 'description' => 'Financeiro', 'bits' => Permission::MENU | Permission::VIEW | Permission::ADD | Permission::EDIT, ], [ 'scope' => 'franchisor_support', 'description' => 'Suporte', 'bits' => Permission::CRUD, ], [ 'scope' => 'franchisor_activities', 'description' => 'Atividades', 'bits' => Permission::CRUD, ], [ 'scope' => 'franchisor_registrations', 'description' => 'Cadastros', 'bits' => Permission::CRUD, ], ...collect([ 'dashboard' => 'Dashboard', 'students' => 'Alunos', 'contracts' => 'Contratos', 'classes' => 'Agenda / Aulas', 'financial' => 'Financeiro', 'packages' => 'Pacotes', 'users' => 'Usuários', 'permissions' => 'Permissões', 'unit' => 'Unidade', 'integrations' => 'APIs', 'support' => 'Suporte', 'activities' => 'Atividades', 'orders' => 'Pedidos', ])->map(fn (string $description, string $scope) => [ 'scope' => "franchisee_{$scope}", 'description' => $description, 'bits' => Permission::CRUD, ])->values()->all(), ]; foreach ($permissions as $permission) { Permission::updateOrCreate( ['scope' => $permission['scope']], $permission + ['parent_id' => null], ); } $activeScopes = array_column($permissions, 'scope'); Permission::query() ->whereNotIn('scope', $activeScopes) ->orderByDesc('_lft') ->get() ->each ->delete(); } }