feat: add ArticleSeeder to populate sample articles and their categories.
This commit is contained in:
parent
63ce676385
commit
b37ae44c0d
94
database/seeders/ArticleSeeder.php
Normal file
94
database/seeders/ArticleSeeder.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Enums\ArticleStatus;
|
||||
use App\Enums\CategoryType;
|
||||
use App\Models\Article;
|
||||
use App\Models\Category;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class ArticleSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$author = User::first() ?? User::factory()->create();
|
||||
|
||||
$categories = collect(['Tips & Trik', 'Review Parfum', 'Berita', 'Edukasi Parfum'])->map(function ($name, $index) {
|
||||
return Category::firstOrCreate(
|
||||
['name' => $name, 'type' => CategoryType::ARTICLE],
|
||||
[
|
||||
'sort_order' => $index + 1,
|
||||
]
|
||||
);
|
||||
});
|
||||
|
||||
$articles = [
|
||||
[
|
||||
'title' => 'Cara Memilih Wangi Parfum yang Tepat untuk Kepribadian Anda',
|
||||
'excerpt' => 'Menemukan wangi yang sesuai dengan karakter Anda bisa menjadi tantangan. Simak tips berikut untuk menemukan signature scent Anda.',
|
||||
'content' => '<p>Parfum bukan sekadar wewangian, tapi juga identitas. Untuk memilih parfum yang tepat, kenali dulu keluarga aroma seperti floral, woody, oriental, atau fresh...</p>',
|
||||
],
|
||||
[
|
||||
'title' => '5 Jenis Parfum yang Cocok untuk Pria Maskulin',
|
||||
'excerpt' => 'Rekomendasi parfum terbaik untuk pria yang ingin tampil lebih percaya diri dan maskulin.',
|
||||
'content' => '<p>Pria seringkali menyukai aroma yang kuat dan tahan lama. Pilihan seperti aroma kayu (woody) atau rempah (spicy) sangat cocok untuk menunjang penampilan...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Rahasia Agar Wangi Parfum Tahan Seharian',
|
||||
'excerpt' => 'Kesal wangi parfum cepat hilang? Coba tips sederhana ini agar aroma favorit Anda bertahan lebih lama.',
|
||||
'content' => '<p>Salah satu kunci agar parfum tahan lama adalah mengaplikasikannya di titik-titik nadi. Selain itu, pastikan kulit Anda lembap sebelum menyemprotkan parfum...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Perbedaan Eau de Parfum, Eau de Toilette, dan Cologne',
|
||||
'excerpt' => 'Sering bingung dengan istilah-istilah parfum? Ketahui perbedaannya agar tidak salah beli.',
|
||||
'content' => '<p>Perbedaan utama terletak pada konsentrasi minyak wangi. Eau de Parfum memiliki konsentrasi lebih tinggi dibanding Eau de Toilette, sehingga wanginya lebih tahan lama...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Tren Parfum Tahun Ini: Aroma Floral Masih Jadi Favorit',
|
||||
'excerpt' => 'Simak tren wewangian yang sedang hits tahun ini. Apakah aroma favorit Anda masuk dalam daftar?',
|
||||
'content' => '<p>Tahun ini, aroma floral dengan sentuhan modern masih mendominasi pasar. Kombinasi bunga mawar dan melati dengan sedikit sentuhan buah-buahan segar...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Mengapa Harga Parfum Bisa Sangat Mahal?',
|
||||
'excerpt' => 'Pernah bertanya-tanya kenapa satu botol parfum bisa berharga jutaan rupiah? Ini alasannya.',
|
||||
'content' => '<p>Bahan-bahan langka, proses ekstraksi yang rumit, hingga branding dan kemasan mewah menjadi faktor-faktor yang menentukan harga sebuah parfum...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Parfum Unisex: Pilihan Fleksibel untuk Semua Gender',
|
||||
'excerpt' => 'Parfum unisex semakin populer. Apa yang membuatnya disukai banyak orang?',
|
||||
'content' => '<p>Parfum unisex menawarkan aroma yang netral, tidak terlalu feminin maupun maskulin. Biasanya memiliki karakter aroma citrus atau green yang segar...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Cara Menyimpan Parfum Agar Aromanya Tidak Berubah',
|
||||
'excerpt' => 'Penyimpanan yang salah bisa merusak kualitas parfum. Ketahui cara menyimpannya dengan benar.',
|
||||
'content' => '<p>Hindari menyimpan parfum di tempat yang terkena sinar matahari langsung atau suhu panas. Lemari yang sejuk dan gelap adalah tempat terbaik...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Rekomendasi Parfum Lokal Berkualitas Internasional',
|
||||
'excerpt' => 'Bangga buatan Indonesia! Ini dia daftar parfum lokal yang kualitasnya tak kalah dengan brand luar.',
|
||||
'content' => '<p>Industri parfum tanah air semakin berkembang. Banyak brand lokal yang kini menawarkan kualitas aroma dan ketahanan yang mampu bersaing di kancah global...</p>',
|
||||
],
|
||||
[
|
||||
'title' => 'Sejarah Parfum: Dari Mesir Kuno hingga Modern',
|
||||
'excerpt' => 'Jelajahi sejarah panjang wewangian yang telah digunakan manusia sejak ribuan tahun lalu.',
|
||||
'content' => '<p>Sejarah parfum bermula dari Mesir Kuno, di mana wewangian digunakan dalam upacara keagamaan. Seiring waktu, parfum berkembang menjadi simbol status dan gaya hidup...</p>',
|
||||
],
|
||||
];
|
||||
|
||||
foreach ($articles as $data) {
|
||||
$article = Article::create([
|
||||
'author_id' => $author->id,
|
||||
'title' => $data['title'],
|
||||
'excerpt' => $data['excerpt'],
|
||||
'content' => $data['content'],
|
||||
'status' => ArticleStatus::PUBLISHED,
|
||||
'published_at' => now()->subDays(rand(1, 30)),
|
||||
'views' => rand(100, 5000),
|
||||
]);
|
||||
|
||||
$article->categories()->attach($categories->random(rand(1, 2))->pluck('id'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -50,6 +50,7 @@ public function run(): void
|
||||
PerfumeFeatureSeeder::class,
|
||||
ChooseUsSeeder::class,
|
||||
TestimonialSeeder::class,
|
||||
ArticleSeeder::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user