ldc-portsalaries/database/seeders/DatabaseSeeder.php
Jérémy Munsch 2c48324386 phpcbf fix
2021-09-06 10:58:22 +02:00

51 lines
1.7 KiB
PHP

<?php
namespace Database\Seeders;
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;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
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) {
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) {
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]);
}
}