ldc-groupe/database/factories/NewsFactory.php
2025-11-13 12:20:43 +01:00

46 lines
1.3 KiB
PHP

<?php
namespace Database\Factories;
use App\Enums\News\NewsCategoryEnum;
use App\Enums\News\NewsStatusEnum;
use App\Models\News;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\News>
*/
class NewsFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
return [
'seo_title' => fake()->sentence(6, true),
'seo_description' => fake()->paragraph(2, true),
'title' => fake()->sentence(4),
'slug' => fake()->unique()->slug(),
'content' => fake()->paragraphs(5, true),
'status' => collect(NewsStatusEnum::cases())->random(),
'picture_alt' => fake()->sentence(6, true),
'picture_title' => fake()->sentence(6, true),
];
}
public function configure()
{
return $this->afterCreating(function (News $news) {
$categories = collect(NewsCategoryEnum::cases())
->random(rand(1, 3))
->all();
foreach ($categories as $category) {
$news->categories()->create(['category' => $category]);
}
});
}
}