feat: tambah role editor, workflow post, leaderboard, rekap kehadiran, kategori kas dengan type, seeder lengkap
This commit is contained in:
@@ -5,38 +5,87 @@ 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
|
||||
{
|
||||
$author = User::role('ketua')->first() ?? User::first();
|
||||
$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' => \Illuminate\Support\Str::slug($data['title'])],
|
||||
array_merge($data, ['author_id' => $author->id, 'status' => 'published'])
|
||||
['slug' => Str::slug($data['title'])],
|
||||
$data
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user