<?php

namespace App\Http\Controllers;

use App\Http\Requests\DepartamentoRequest;
use App\Models\Departamento;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;

class DepartamentoController extends Controller
{
    public function index(): View
    {
        $departamentos = Departamento::orderBy('nombre')->paginate(15);

        return view('catalogos.departamentos.index', compact('departamentos'));
    }

    public function create(): View
    {
        return view('catalogos.departamentos.create');
    }

    public function store(DepartamentoRequest $request): RedirectResponse
    {
        Departamento::create($request->validated());

        return redirect()->route('departamentos.index')->with('status', 'Departamento registrado correctamente.');
    }

    public function edit(Departamento $departamento): View
    {
        return view('catalogos.departamentos.edit', compact('departamento'));
    }

    public function update(DepartamentoRequest $request, Departamento $departamento): RedirectResponse
    {
        $departamento->update($request->validated());

        return redirect()->route('departamentos.index')->with('status', 'Departamento actualizado correctamente.');
    }

    public function toggle(Departamento $departamento): RedirectResponse
    {
        $departamento->update(['active' => ! $departamento->active]);

        return redirect()->route('departamentos.index')->with('status', 'Estado del departamento actualizado.');
    }
}
