parfum/database/factories/ArticleFactory.php
Yoga Pangestu c4b90acf53 feat: membuat factory seluruh model
- menyesuaikan model jika ada yang salah seperti kurangnya trait SoftDeletes, casting yang salah, relasi yang kurang dan lainnya
- memperbaiki enum di migrasi
2025-12-09 08:25:07 +07:00

41 lines
1.2 KiB
PHP

<?php
namespace Database\Factories;
use App\Enums\ArticleStatus;
use App\Models\Article;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class ArticleFactory extends Factory
{
protected $model = Article::class;
public function definition(): array
{
$title = $this->faker->sentence(6);
return [
'author_id' => User::factory(),
'title' => $title,
'slug' => Str::slug($title.'-'.$this->faker->unique()->randomNumber()),
'excerpt' => $this->faker->paragraph(),
'content' => $this->faker->paragraphs(3, true),
'status' => ArticleStatus::PUBLISHED,
'published_at' => $this->faker->optional()->dateTimeBetween('-10 days', 'now'),
'views' => $this->faker->numberBetween(0, 1000),
];
}
public function draft(): Factory
{
return $this->state(fn () => ['status' => ArticleStatus::DRAFT, 'published_at' => null]);
}
public function published(): Factory
{
return $this->state(fn () => ['status' => ArticleStatus::PUBLISHED, 'published_at' => now()]);
}
}