adrema/database/factories/SubactivityFactory.php

71 lines
1.5 KiB
PHP
Raw Normal View History

2022-03-06 01:53:15 +01:00
<?php
namespace Database\Factories;
use App\Subactivity;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Subactivity>
*/
class SubactivityFactory extends Factory
{
protected $model = Subactivity::class;
2022-11-16 23:39:44 +01:00
/** @var array<int, string> */
private array $filterableSubactivities = [
'Biber',
'Wölfling',
'Jungpfadfinder',
'Pfadfinder',
'Vorstand',
'Rover',
];
/** @var array<int, string> */
private array $ageGroups = [
'Biber',
'Wölfling',
'Jungpfadfinder',
'Pfadfinder',
'Rover',
];
2022-03-06 01:53:15 +01:00
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->words(5, true),
'nami_id' => $this->faker->randomNumber(),
];
}
public function inNami(int $namiId): self
{
return $this->state(['nami_id' => $namiId]);
}
2022-09-06 01:25:04 +02:00
public function ageGroup(): self
{
return $this->state(['is_age_group' => true]);
}
2022-11-16 16:30:23 +01:00
2022-11-16 23:39:44 +01:00
public function filterable(): self
2022-11-16 16:30:23 +01:00
{
2022-11-16 23:39:44 +01:00
return $this->state(['is_filterable' => true]);
2022-11-16 16:30:23 +01:00
}
2022-11-16 23:39:44 +01:00
public function name(string $name): self
2022-11-16 16:30:23 +01:00
{
2022-11-16 23:39:44 +01:00
return $this->state([
'name' => $name,
'is_filterable' => in_array($name, $this->filterableSubactivities),
'is_age_group' => in_array($name, $this->ageGroups),
]);
2022-11-16 16:30:23 +01:00
}
2022-03-06 01:53:15 +01:00
}