41 lines
1.1 KiB
PHP
41 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\BlogPost;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
use Illuminate\Support\Str;
|
|
|
|
/**
|
|
* @extends Factory<BlogPost>
|
|
*/
|
|
final class BlogPostFactory extends Factory
|
|
{
|
|
protected $model = BlogPost::class;
|
|
|
|
public function definition(): array
|
|
{
|
|
$title = $this->faker->sentence(5);
|
|
|
|
return [
|
|
'slug' => Str::slug($title) . '-' . $this->faker->unique()->numberBetween(1, 99999),
|
|
'title' => $title,
|
|
'body' => '<p>' . implode('</p><p>', $this->faker->paragraphs(3)) . '</p>',
|
|
'excerpt' => $this->faker->sentence(15),
|
|
'author_id' => null,
|
|
'featured_image' => null,
|
|
'meta_title' => null,
|
|
'meta_description' => null,
|
|
'is_published' => true,
|
|
'published_at' => $this->faker->dateTimeBetween('-1 year', 'now'),
|
|
];
|
|
}
|
|
|
|
public function draft(): static
|
|
{
|
|
return $this->state(['is_published' => false, 'published_at' => null]);
|
|
}
|
|
}
|