<?php

namespace App\Http\Controllers;

use App\Models\Pelaporan;
use App\Models\Tindakan;
use Illuminate\Http\Request;

class TindakanController extends Controller
{
    public function index(Request $request)
    {
        $user = $request->user();
        if ($user->role == 'admin') {
            // Jika pengguna adalah admin, hitung total berdasarkan tindakan_id
            $laporan = Pelaporan::with('tindakan','user')->get();

        } elseif ($user->role == 'user') {
            // Jika pengguna adalah pengguna biasa, hitung riwayat pelaporan milik pengguna tersebut
            $riwayat = Pelaporan::where('user_id', $user->id)->get();
            // Menghitung total riwayat pelaporan yang dimiliki oleh pengguna
            $laporan = $riwayat->with('tindakan','user')->count();
        }
            $pelaporans = Pelaporan::query();

            if ($request->has('search')) {
                $pelaporans->where('judul', 'LIKE', '%' . $request->search . '%');
            }

            $pelaporans = $pelaporans->get();

            return view('admin.tindakan.index', compact('pelaporans', 'laporan'));

    }

    public function edit($id){
        $laporan = Pelaporan::with('tindakan','user')->get();
        $pelaporans = Pelaporan::find($id);

        $tindakans = Tindakan::all();
        return view('admin.tindakan.update', compact('pelaporans', 'tindakans','laporan'));
    }

    public function update(Request $request, $id){
        $request->validate([
            'tindakan_id' => 'required', // Sesuaikan aturan validasi sesuai kebutuhan
        ]);

        $pelaporans = Pelaporan::find($id);
        // dd($request->all(), $pelaporans);
        $pelaporans->tindakan_id = $request->tindakan_id;
        $pelaporans->save();

        return redirect()->route('tindakan.index')->with('success', 'Tindakan berhasil diperbarui.');
    }

    public function show(Request $request, $id){
        $laporan = Pelaporan::with('tindakan','user')->get();
        $pelaporans = Pelaporan::find($id);

        $tindakans = Tindakan::all();
        return view('admin.tindakan.show', compact('pelaporans', 'tindakans','laporan'));

    }

    public function destroy($id)
    {
        $pelaporan = Pelaporan::find($id);

        if ($pelaporan) {
            $pelaporan->delete();
            return redirect()->route('tindakan.index')->with('success', 'Tindakan berhasil dihapus.');
        } else {
            return redirect()->route('tindakan.index')->with('error', 'Tindakan tidak ditemukan.');
        }
    }


}
