ldc-portsalaries/database/seeders/DatabaseSeeder.php

52 lines
1.7 KiB
PHP
Raw Permalink Normal View History

2021-04-22 17:22:26 +02:00
<?php
namespace Database\Seeders;
2021-05-08 06:50:19 +02:00
use App\Enums\Role;
use App\Models\Flash;
use App\Models\Pole;
use App\Models\ReponseSondage;
use App\Models\Employee;
use App\Models\Site;
use App\Models\Societe;
use App\Models\Sondage;
use App\Models\User;
2021-04-22 17:22:26 +02:00
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
2021-05-08 06:50:19 +02:00
Pole::factory(3)->create()->each(function (Pole $pole) {
Societe::factory(rand(2, 10))
->create(['pole_id' => $pole])->each(function (Societe $societe) use ($pole) {
Site::factory(rand(1, 10))
->create(['societe_id' => $societe])->each(function (Site $site) use ($societe) {
2021-05-08 06:50:19 +02:00
Flash::factory(rand(2, 10))->create(['site_id' => $site]);
User::factory(rand(1, 2))->create()->each(function (User $user) use ($site) {
$user->sites()->syncWithoutDetaching([$site->id]);
});
Sondage::factory(rand(4, 7))->create(['site_id' => $site])
->each(function (Sondage $sondage) use ($site) {
2021-05-08 06:50:19 +02:00
ReponseSondage::factory(rand(1, 3))->create(['sondage_id' => $sondage]);
});
Employee::factory(10)->create(['site_id' => $site]);
});
});
});
$user = new User([
'role' => Role::admin(),
'name' => 'Jérémy',
'email' => 'jeremy.munsch@ldc.fr',
'password' => 'password',
]);
$user->saveOrFAil();
$user->sites()->sync([Site::query()->firstOrFail()->id]);
2021-04-22 17:22:26 +02:00
}
}