<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use App\Models\Warga;
use App\Models\Surat;
use App\Models\Iuran;
use App\Models\KasRt;
use App\Models\Pengumuman;
use App\Models\Agenda;
use App\Models\User;

class RtSeeder extends Seeder
{
    public function run(): void
    {
        $user = User::first();

        // Buat data warga
        $wargas = [
            [
                'nik' => '3201012345678901',
                'kk' => '3201011234567890',
                'nama' => 'Ahmad Suryadi',
                'jenis_kelamin' => 'L',
                'tempat_lahir' => 'Jakarta',
                'tanggal_lahir' => '1985-05-15',
                'alamat' => 'Jl. Merdeka No. 10',
                'rt' => '001',
                'rw' => '005',
                'kelurahan' => 'Kebon Jeruk',
                'kecamatan' => 'Kebon Jeruk',
                'kota' => 'Jakarta Barat',
                'provinsi' => 'DKI Jakarta',
                'telepon' => '081234567890',
                'email' => 'ahmad@example.com',
                'status_perkawinan' => 'Kawin',
                'pekerjaan' => 'Wiraswasta',
            ],
            [
                'nik' => '3201012345678902',
                'kk' => '3201011234567891',
                'nama' => 'Siti Nurhaliza',
                'jenis_kelamin' => 'P',
                'tempat_lahir' => 'Bandung',
                'tanggal_lahir' => '1990-08-20',
                'alamat' => 'Jl. Merdeka No. 12',
                'rt' => '001',
                'rw' => '005',
                'kelurahan' => 'Kebon Jeruk',
                'kecamatan' => 'Kebon Jeruk',
                'kota' => 'Jakarta Barat',
                'provinsi' => 'DKI Jakarta',
                'telepon' => '081234567891',
                'email' => 'siti@example.com',
                'status_perkawinan' => 'Kawin',
                'pekerjaan' => 'Ibu Rumah Tangga',
            ],
            [
                'nik' => '3201012345678903',
                'kk' => '3201011234567892',
                'nama' => 'Budi Santoso',
                'jenis_kelamin' => 'L',
                'tempat_lahir' => 'Jakarta',
                'tanggal_lahir' => '1988-03-10',
                'alamat' => 'Jl. Merdeka No. 14',
                'rt' => '001',
                'rw' => '005',
                'kelurahan' => 'Kebon Jeruk',
                'kecamatan' => 'Kebon Jeruk',
                'kota' => 'Jakarta Barat',
                'provinsi' => 'DKI Jakarta',
                'telepon' => '081234567892',
                'status_perkawinan' => 'Kawin',
                'pekerjaan' => 'Pegawai Swasta',
            ],
        ];

        foreach ($wargas as $wargaData) {
            $warga = Warga::create($wargaData);

            // Buat iuran untuk setiap warga
            Iuran::create([
                'warga_id' => $warga->id,
                'jenis_iuran' => 'Iuran Kebersihan',
                'bulan' => 2,
                'tahun' => 2026,
                'nominal' => 50000,
                'status' => 'Belum Bayar',
            ]);

            Iuran::create([
                'warga_id' => $warga->id,
                'jenis_iuran' => 'Iuran Keamanan',
                'bulan' => 2,
                'tahun' => 2026,
                'nominal' => 100000,
                'tanggal_bayar' => '2026-02-05',
                'status' => 'Sudah Bayar',
                'user_id' => $user->id,
            ]);
        }

        // Buat surat sample
        Surat::create([
            'nomor_surat' => '001/RT/SKT/2026',
            'jenis_surat' => 'Keterangan Domisili',
            'warga_id' => 1,
            'tanggal_surat' => '2026-02-09',
            'keperluan' => 'Untuk keperluan pembuatan KTP',
            'keterangan' => 'Warga aktif sejak 2020',
            'status' => 'Disetujui',
            'user_id' => $user->id,
        ]);

        // Buat transaksi kas
        KasRt::create([
            'tanggal' => '2026-02-01',
            'jenis' => 'Pemasukan',
            'kategori' => 'Iuran Warga',
            'nominal' => 3000000,
            'keterangan' => 'Iuran bulan Februari 2026',
            'user_id' => $user->id,
        ]);

        KasRt::create([
            'tanggal' => '2026-02-05',
            'jenis' => 'Pengeluaran',
            'kategori' => 'Kebersihan',
            'nominal' => 500000,
            'keterangan' => 'Beli alat kebersihan dan sampah',
            'user_id' => $user->id,
        ]);

        KasRt::create([
            'tanggal' => '2026-02-07',
            'jenis' => 'Pengeluaran',
            'kategori' => 'Keamanan',
            'nominal' => 300000,
            'keterangan' => 'Biaya ronda malam',
            'user_id' => $user->id,
        ]);

        // Buat pengumuman
        Pengumuman::create([
            'judul' => 'Gotong Royong Minggu Depan',
            'isi' => 'Dihimbau kepada seluruh warga RT 001 untuk mengikuti kegiatan gotong royong pada hari Minggu, 16 Februari 2026 pukul 07.00 WIB. Mohon kehadiran seluruh warga.',
            'kategori' => 'Kebersihan',
            'prioritas' => 'Tinggi',
            'tanggal_mulai' => '2026-02-10',
            'tanggal_selesai' => '2026-02-16',
            'is_active' => true,
            'user_id' => $user->id,
        ]);

        Pengumuman::create([
            'judul' => 'Pembayaran Iuran Bulan Februari',
            'isi' => 'Kepada seluruh warga RT 001, dimohon untuk segera melakukan pembayaran iuran bulan Februari 2026. Pembayaran dapat dilakukan melalui Bendahara RT atau transfer ke rekening yang telah ditentukan.',
            'kategori' => 'Iuran',
            'prioritas' => 'Sedang',
            'tanggal_mulai' => '2026-02-01',
            'tanggal_selesai' => '2026-02-28',
            'is_active' => true,
            'user_id' => $user->id,
        ]);

        // Buat agenda
        Agenda::create([
            'judul' => 'Rapat RT Bulanan',
            'deskripsi' => 'Membahas program kerja bulan Maret dan evaluasi kegiatan bulan Februari',
            'tanggal_mulai' => '2026-02-20 19:00:00',
            'tanggal_selesai' => '2026-02-20 21:00:00',
            'lokasi' => 'Balai RT 001',
            'jenis' => 'Rapat',
            'peserta' => 'Pengurus RT, Ketua RW, dan perwakilan warga',
            'status' => 'Terjadwal',
            'user_id' => $user->id,
        ]);

        Agenda::create([
            'judul' => 'Gotong Royong Bersih Lingkungan',
            'deskripsi' => 'Kegiatan bersih-bersih lingkungan RT 001',
            'tanggal_mulai' => '2026-02-16 07:00:00',
            'tanggal_selesai' => '2026-02-16 10:00:00',
            'lokasi' => 'Seluruh area RT 001',
            'jenis' => 'Gotong Royong',
            'peserta' => 'Seluruh warga RT 001',
            'status' => 'Terjadwal',
            'user_id' => $user->id,
        ]);

        $this->command->info('Data RT berhasil dibuat!');
        $this->command->info('- 3 Warga');
        $this->command->info('- 6 Iuran');
        $this->command->info('- 1 Surat');
        $this->command->info('- 3 Transaksi Kas');
        $this->command->info('- 2 Pengumuman');
        $this->command->info('- 2 Agenda');
    }
}
