<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Schema;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        Schema::disableForeignKeyConstraints();

        // 1. Truncate tabel terkait agar bersih saat re-seed
        DB::table('users')->truncate();
        DB::table('Masjid')->truncate();

        // 2. Jalankan MasjidSeeder DULU agar data masjid tersedia
        $this->call(MasjidSeeder::class);

        // 3. Ambil ID masjid pertama yang baru saja di-seed
        $masjid = DB::table('Masjid')->first();
        $idMasjid = $masjid ? $masjid->id_masjid : 1;

        // 3b. Seed Wilayah default untuk masjid ini
        DB::table('Wilayah')->insert([
            [
                'rt' => '01',
                'rw' => '01',
                'nama_wilayah' => 'RT 01 / RW 01',
                'id_masjid' => $idMasjid,
                'created_at' => now(),
            ],
            [
                'rt' => '02',
                'rw' => '01',
                'nama_wilayah' => 'RT 02 / RW 01',
                'id_masjid' => $idMasjid,
                'created_at' => now(),
            ]
        ]);

        // Ambil ID wilayah yang baru saja dibuat
        $wilayahId = DB::table('Wilayah')->first()->id_wilayah ?? 1;

        // 4. Buat akun user untuk setiap role
        DB::table('users')->insert([
            [
                'nama_user' => 'Ai Selpia Andita',
                'username'  => 'aiselpia',
                'email'     => 'aiselpia@gmail.com',
                'password'  => Hash::make('rahasia123'),
                'int_role'  => 'superadmin',
                'jabatan'   => 'Superadmin / Developer',
                'alamat'    => 'Jakarta Utara',
                'id_masjid' => $idMasjid,
                'id_wilayah'=> null,
                'status_aktif' => true,
                'created_at'   => now(),
            ],
            [
                'nama_user' => 'Admin Masjid Al-Ikhlas',
                'username'  => 'adminmasjid',
                'email'     => 'adminmasjid@gmail.com',
                'password'  => Hash::make('rahasia123'),
                'int_role'  => 'admin_masjid',
                'jabatan'   => 'Admin Utama Masjid',
                'alamat'    => 'Jakarta Utara',
                'id_masjid' => $idMasjid,
                'id_wilayah'=> null,
                'status_aktif' => true,
                'created_at'   => now(),
            ],
            [
                'nama_user' => 'Pak RT (Ketua RT)',
                'username'  => 'ketuart',
                'email'     => 'ketuart@gmail.com',
                'password'  => Hash::make('rahasia123'),
                'int_role'  => 'rt',
                'jabatan'   => 'Ketua RT',
                'alamat'    => 'Jakarta Utara',
                'id_masjid' => $idMasjid,
                'id_wilayah'=> $wilayahId,
                'status_aktif' => true,
                'created_at'   => now(),
            ],
            [
                'nama_user' => 'Amil Zakat (Bendahara)',
                'username'  => 'amilzakat',
                'email'     => 'amil@gmail.com',
                'password'  => Hash::make('rahasia123'),
                'int_role'  => 'amil',
                'jabatan'   => 'Amil Zakat / Bendahara',
                'alamat'    => 'Jakarta Utara',
                'id_masjid' => $idMasjid,
                'id_wilayah'=> null,
                'status_aktif' => true,
                'created_at'   => now(),
            ],
        ]);

        // 5. Jalankan seeder pengajuan SETELAH user dan masjid tersedia
        $this->call(PengajuanMasjidSeeder::class);

        Schema::enableForeignKeyConstraints();
    }
}