This commit is contained in:
@@ -8,6 +8,7 @@ use App\Domain\Inventory\Models\SnipeAsset;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
@@ -18,6 +19,12 @@ class DatabaseSeeder extends Seeder
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
if (! app()->environment(['local', 'testing'])) {
|
||||
$this->command->warn('O DatabaseSeeder contém credenciais de desenvolvimento e foi ignorado fora de local/testing.');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$roles = collect(RoleName::cases())->mapWithKeys(fn (RoleName $role) => [
|
||||
$role->value => Role::firstOrCreate(
|
||||
['name' => $role->value],
|
||||
@@ -31,25 +38,38 @@ class DatabaseSeeder extends Seeder
|
||||
),
|
||||
]);
|
||||
|
||||
$demo = User::factory()->create([
|
||||
'name' => 'Utilizador de Demonstração',
|
||||
'email' => 'demo@escola.pt',
|
||||
'department' => 'Docentes',
|
||||
]);
|
||||
$demo->roles()->attach($roles[RoleName::Requester->value]);
|
||||
$demo = User::query()->updateOrCreate(
|
||||
['email' => 'demo@escola.pt'],
|
||||
[
|
||||
'name' => 'Utilizador de Demonstração',
|
||||
'email_verified_at' => now(),
|
||||
'password' => Hash::make('password'),
|
||||
'department' => 'Docentes',
|
||||
'active' => true,
|
||||
],
|
||||
);
|
||||
$demo->roles()->sync([$roles[RoleName::Requester->value]->id]);
|
||||
|
||||
$admin = User::factory()->create([
|
||||
'name' => 'Administrador do Portal',
|
||||
'email' => 'admin@escola.pt',
|
||||
'department' => 'Serviços de Informática',
|
||||
]);
|
||||
$admin->roles()->attach([
|
||||
$admin = User::query()->updateOrCreate(
|
||||
['email' => 'admin@escola.pt'],
|
||||
[
|
||||
'name' => 'Administrador do Portal',
|
||||
'email_verified_at' => now(),
|
||||
'password' => Hash::make('password'),
|
||||
'department' => 'Serviços de Informática',
|
||||
'active' => true,
|
||||
],
|
||||
);
|
||||
$admin->roles()->sync([
|
||||
$roles[RoleName::Requester->value]->id,
|
||||
$roles[RoleName::Approver->value]->id,
|
||||
$roles[RoleName::InventoryOperator->value]->id,
|
||||
$roles[RoleName::Administrator->value]->id,
|
||||
]);
|
||||
|
||||
SnipeAsset::factory()->count(18)->create();
|
||||
$snipeItConfigured = filled(config('services.snipe_it.url')) && filled(config('services.snipe_it.read_token'));
|
||||
if (! $snipeItConfigured && ! SnipeAsset::query()->exists()) {
|
||||
SnipeAsset::factory()->count(18)->create();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user