Browse Source

✨ feat(seeders): atualizar seeders com permissões, categorias, cargos e setores

Fase: dev | Origin: melhoria-interna
Gustavo Zanatta 1 week ago
parent
commit
3f05e1aefd

+ 44 - 0
database/seeders/CategoryPartnerSeeder.php

@@ -0,0 +1,44 @@
+<?php
+
+namespace Database\Seeders;
+
+use App\Models\Category;
+use Illuminate\Database\Seeder;
+
+class CategoryPartnerSeeder extends Seeder
+{
+  public function run(): void
+  {
+    $partnerCategories = [
+      'Convênios Médicos',
+      'Academia',
+      'Dentista',
+      'Farmácia',
+      'Outros',
+    ];
+
+    foreach ($partnerCategories as $name) {
+      Category::firstOrCreate(
+        ['name' => $name, 'type' => 'partner'],
+        ['active' => true],
+      );
+    }
+
+    $serviceCategories = [
+      'Consulta',
+      'Exame',
+      'Produto Físico',
+      'Produto Digital',
+      'Assinatura',
+      'Avulsos',
+      'Outros',
+    ];
+
+    foreach ($serviceCategories as $name) {
+      Category::firstOrCreate(
+        ['name' => $name, 'type' => 'service'],
+        ['active' => true],
+      );
+    }
+  }
+}

+ 34 - 0
database/seeders/CategorySeeder.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace Database\Seeders;
+
+use App\Models\Category;
+use Illuminate\Database\Seeder;
+
+class CategorySeeder extends Seeder
+{
+    public function run(): void
+    {
+        $categories = [
+            'Saúde',
+            'Alimentação',
+            'Educação',
+            'Lazer e Entretenimento',
+            'Beleza e Estética',
+            'Farmácia',
+            'Ótica',
+            'Academia e Esportes',
+            'Seguros',
+            'Vestuário',
+            'Tecnologia',
+            'Viagem e Turismo',
+            'Automóvel',
+            'Financeiro',
+            'Outros',
+        ];
+
+        foreach ($categories as $name) {
+            Category::firstOrCreate(['name' => $name], ['active' => true]);
+        }
+    }
+}

+ 3 - 0
database/seeders/DatabaseSeeder.php

@@ -16,6 +16,9 @@ class DatabaseSeeder extends Seeder
             PermissionSeeder::class,
             UserTypePermissionSeeder::class,
             BrazilCitiesSeeder::class,
+            PositionSeeder::class,
+            SectorSeeder::class,
+            CategorySeeder::class,
         ]);
     }
 }

+ 12 - 0
database/seeders/PermissionSeeder.php

@@ -56,6 +56,18 @@ class PermissionSeeder extends Seeder
                         "bits" => Permission::CRUD,
                         "children" => [],
                     ],
+                    [
+                        "scope" => "config.position",
+                        "description" => "Configurações de Cargos",
+                        "bits" => Permission::CRUD,
+                        "children" => [],
+                    ],
+                    [
+                        "scope" => "config.sector",
+                        "description" => "Configurações de Setores",
+                        "bits" => Permission::CRUD,
+                        "children" => [],
+                    ],
                 ],
             ],
             [

+ 27 - 0
database/seeders/PositionSeeder.php

@@ -0,0 +1,27 @@
+<?php
+
+namespace Database\Seeders;
+
+use App\Models\Position;
+use Illuminate\Database\Seeder;
+
+class PositionSeeder extends Seeder
+{
+    public function run(): void
+    {
+        $positions = [
+            'Gerente',
+            'Coordenador',
+            'Assistente',
+            'Analista',
+            'Técnico',
+            'Auxiliar',
+            'Supervisor',
+            'Diretor',
+        ];
+
+        foreach ($positions as $name) {
+            Position::firstOrCreate(['name' => $name], ['active' => true]);
+        }
+    }
+}

+ 29 - 0
database/seeders/SectorSeeder.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace Database\Seeders;
+
+use App\Models\Sector;
+use Illuminate\Database\Seeder;
+
+class SectorSeeder extends Seeder
+{
+    public function run(): void
+    {
+        $sectors = [
+            'Administrativo',
+            'Financeiro',
+            'Recursos Humanos',
+            'Marketing',
+            'Produção',
+            'Laboratório',
+            'Comercial',
+            'Tecnologia',
+            'Jurídico',
+            'Operações',
+        ];
+
+        foreach ($sectors as $name) {
+            Sector::firstOrCreate(['name' => $name], ['active' => true]);
+        }
+    }
+}

+ 8 - 0
database/seeders/UserTypePermissionSeeder.php

@@ -32,6 +32,14 @@ class UserTypePermissionSeeder extends Seeder
                         ['scope' => 'associado.convenio',     'bits' => Permission::VIEW | Permission::MENU],
                         ['scope' => 'associado.dependente',   'bits' => Permission::VIEW | Permission::ADD | Permission::EDIT | Permission::DELETE | Permission::MENU],
                         ['scope' => 'notificacao',            'bits' => Permission::VIEW | Permission::MENU],
+                        ['scope' => 'agendamento',            'bits' => Permission::VIEW | Permission::ADD | Permission::EDIT],
+                        ['scope' => 'config.user',            'bits' => Permission::VIEW | Permission::EDIT],
+                        ['scope' => 'parceiro.convenio',      'bits' => Permission::VIEW],
+                        ['scope' => 'loja.item',              'bits' => Permission::VIEW],
+                        ['scope' => 'categoria',              'bits' => Permission::VIEW],
+                        ['scope' => 'config.position',        'bits' => Permission::VIEW],
+                        ['scope' => 'config.sector',          'bits' => Permission::VIEW],
+                        ['scope' => 'dashboard',            'bits' => Permission::VIEW | Permission::MENU],
                     ];
                     break;