39 lines
1.0 KiB
PHP
39 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\Page;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
use Illuminate\Support\Str;
|
|
|
|
/**
|
|
* @extends Factory<Page>
|
|
*/
|
|
final class PageFactory extends Factory
|
|
{
|
|
protected $model = Page::class;
|
|
|
|
public function definition(): array
|
|
{
|
|
$title = $this->faker->sentence(4);
|
|
|
|
return [
|
|
'slug' => Str::slug($title) . '-' . $this->faker->unique()->numberBetween(1, 99999),
|
|
'title' => $title,
|
|
'body' => '<p>' . implode('</p><p>', $this->faker->paragraphs(2)) . '</p>',
|
|
'layout' => 'default',
|
|
'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]);
|
|
}
|
|
}
|