<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\SosialKasPemasukan;

class SosialKasPemasukanController extends Controller
{
    /**
     * Tampilkan daftar pemasukan.
     */
    public function index()
    {
        $data = SosialKasPemasukan::all();
        $total = $data->sum('jumlah');

        return view('sosial_kas.pemasukan.index', compact('data', 'total'));
    }

    /**
     * Tampilkan form tambah pemasukan.
     */
    public function create()
    {
        return view('sosial_kas.pemasukan.create');
    }

    /**
     * Simpan data pemasukan baru.
     */
    public function store(Request $request)
    {
        $request->validate([
            'tanggal' => 'required|date',
            'kategori' => 'required|string',
            'jumlah' => 'required|integer',
            'barang' => 'nullable|string',
            'keterangan' => 'nullable|string',
        ]);

        SosialKasPemasukan::create($request->all());

        return redirect()->route('sosial-kas.pemasukan.index')->with('success', 'Data berhasil ditambahkan.');
    }

    /**
     * Tampilkan form edit pemasukan.
     */
    public function edit($id)
    {
        $d = SosialKasPemasukan::findOrFail($id);
        return view('sosial_kas.pemasukan.edit', compact('d'));
    }

    /**
     * Update data pemasukan.
     */
    public function update(Request $request, SosialKasPemasukan $pemasukan)
    {
        $request->validate([
            'tanggal' => 'required|date',
            'kategori' => 'required|string',
            'jumlah' => 'required|integer',
            'barang' => 'nullable|string',
            'keterangan' => 'nullable|string',
        ]);

        $pemasukan->update($request->all());

        return redirect()->route('sosial-kas.pemasukan.index')->with('success', 'Data berhasil diperbarui.');
    }

    /**
     * Hapus data pemasukan.
     */
    public function destroy(SosialKasPemasukan $pemasukan)
    {
        $pemasukan->delete();
        return redirect()->route('sosial-kas.pemasukan.index')->with('success', 'Data berhasil dihapus.');
    }
}
