| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- namespace Database\Seeders;
- use App\Models\Permission;
- use Illuminate\Database\Seeder;
- class PermissionSeeder extends Seeder
- {
- public function run(): void
- {
- $permissions = [
- [
- 'scope' => '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',
- '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();
- }
- }
|