<?php

namespace App\Http\Controllers\Shared;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class PoktanController extends Controller
{
    /**
     * Tampilkan data master kelompok tani terdaftar.
     */
    public function index(Request $request)
    {
        $search = $request->input('search');
        $kabupatenFilter = $request->input('kabupaten');

        // Query dengan join lengkap untuk mendapatkan hierarki wilayah yang informatif
        $query = DB::table('kelompok_tani')
            ->join('regencies', 'kelompok_tani.regency_id', '=', 'regencies.id')
            ->join('districts', 'kelompok_tani.district_id', '=', 'districts.id')
            ->join('villages', 'kelompok_tani.village_id', '=', 'villages.id')
            ->select(
                'kelompok_tani.*',
                'regencies.nama_kabupaten',
                'districts.nama_kecamatan',
                'villages.nama_desa'
            );

        if ($search) {
            $query->where(function($q) use ($search) {
                $q->where('kelompok_tani.nama_kelompok', 'LIKE', '%' . $search . '%')
                  ->orWhere('kelompok_tani.nomor_induk', 'LIKE', '%' . $search . '%')
                  ->orWhere('kelompok_tani.nama_ketua', 'LIKE', '%' . $search . '%');
            });
        }

        if ($kabupatenFilter) {
            $query->where('kelompok_tani.regency_id', $kabupatenFilter);
        }

        $poktans = $query->orderBy('regencies.nama_kabupaten', 'ASC')
            ->orderBy('kelompok_tani.nama_kelompok', 'ASC')
            ->paginate(15); // Menggunakan paginasi karena jumlah data bisa sangat banyak

        $kabupatens = DB::table('regencies')->get();

        return view('shared.poktan.index', compact('poktans', 'kabupatens'));
    }
}