93 lines
4.1 KiB
PHP
93 lines
4.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Models\Post;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Str;
|
|
|
|
class PostSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$editor = User::role('editor')->first();
|
|
$anggota = User::role('anggota')->first();
|
|
$ketua = User::role('ketua')->first();
|
|
|
|
$posts = [
|
|
// Published — sudah melalui full workflow
|
|
[
|
|
'title' => 'Selamat Datang di Website Persegi',
|
|
'category' => 'pengumuman',
|
|
'content' => '<p>Kami dengan bangga mempersembahkan website resmi organisasi Persegi. Melalui website ini, masyarakat dapat mengikuti perkembangan kegiatan dan informasi terbaru dari organisasi kami.</p>',
|
|
'author_id' => $ketua?->id,
|
|
'status' => 'published',
|
|
'approved_by' => $editor?->id,
|
|
'approved_at' => now()->subDays(11),
|
|
'reviewed_by' => $editor?->id,
|
|
'published_at' => now()->subDays(10),
|
|
],
|
|
[
|
|
'title' => 'Rekrutmen Anggota Baru 2026',
|
|
'category' => 'pengumuman',
|
|
'content' => '<p>Persegi membuka pendaftaran anggota baru untuk periode 2026. Bagi pemuda Desa Karangdadap yang ingin bergabung, silakan hubungi pengurus melalui kontak yang tersedia.</p><p>Pendaftaran dibuka hingga akhir bulan April 2026.</p>',
|
|
'author_id' => $ketua?->id,
|
|
'status' => 'published',
|
|
'approved_by' => $editor?->id,
|
|
'approved_at' => now()->subDays(6),
|
|
'reviewed_by' => $editor?->id,
|
|
'published_at' => now()->subDays(5),
|
|
],
|
|
[
|
|
'title' => 'Laporan Kegiatan Kerja Bakti Desa',
|
|
'category' => 'berita',
|
|
'content' => '<p>Kegiatan kerja bakti yang dilaksanakan pada bulan lalu berjalan dengan lancar. Sebanyak 30 anggota turut berpartisipasi dalam membersihkan lingkungan desa.</p><p>Terima kasih kepada seluruh anggota yang telah berkontribusi.</p>',
|
|
'author_id' => $anggota?->id,
|
|
'status' => 'published',
|
|
'approved_by' => $editor?->id,
|
|
'approved_at' => now()->subDays(3),
|
|
'reviewed_by' => $editor?->id,
|
|
'published_at' => now()->subDays(2),
|
|
],
|
|
// Approved — sudah disetujui editor, belum diterbitkan
|
|
[
|
|
'title' => 'Jadwal Rapat Bulanan April 2026',
|
|
'category' => 'pengumuman',
|
|
'content' => '<p>Rapat bulanan akan dilaksanakan pada akhir April 2026. Seluruh anggota diharapkan hadir.</p>',
|
|
'author_id' => $anggota?->id,
|
|
'status' => 'approved',
|
|
'approved_by' => $editor?->id,
|
|
'approved_at' => now()->subDay(),
|
|
'reviewed_by' => $editor?->id,
|
|
'published_at' => null,
|
|
],
|
|
// Pending — menunggu review editor
|
|
[
|
|
'title' => 'Kegiatan Sosial Ramadan 2026',
|
|
'category' => 'berita',
|
|
'content' => '<p>Persegi berencana mengadakan kegiatan sosial berbagi sembako selama bulan Ramadan.</p>',
|
|
'author_id' => $anggota?->id,
|
|
'status' => 'pending',
|
|
'published_at' => null,
|
|
],
|
|
// Draft — belum diajukan
|
|
[
|
|
'title' => 'Profil Divisi Olahraga',
|
|
'category' => 'umum',
|
|
'content' => '<p>Divisi olahraga Persegi aktif mengadakan kegiatan rutin setiap minggu.</p>',
|
|
'author_id' => $anggota?->id,
|
|
'status' => 'draft',
|
|
'published_at' => null,
|
|
],
|
|
];
|
|
|
|
foreach ($posts as $data) {
|
|
Post::firstOrCreate(
|
|
['slug' => Str::slug($data['title'])],
|
|
$data
|
|
);
|
|
}
|
|
}
|
|
}
|