<?php
namespace App\Http\Controllers\Api;

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

class CategoriaController extends Controller
{
    public function index()
    {
        return response()->json(Categoria::where('activo', 1)->orderBy('nombre')->get());
    }

    public function store(Request $request)
    {
        $request->validate(['nombre' => 'required|string|max:255|unique:categorias,nombre']);
        $categoria = Categoria::create(['nombre' => $request->nombre, 'activo' => 1]);
        return response()->json($categoria, 201);
    }

    public function show($id)
    {
        return response()->json(Categoria::findOrFail($id));
    }

    public function update(Request $request, $id)
    {
        $categoria = Categoria::findOrFail($id);
        $request->validate(['nombre' => 'required|string|max:255|unique:categorias,nombre,' . $id]);
        $categoria->update(['nombre' => $request->nombre]);
        return response()->json($categoria);
    }

    public function destroy($id)
    {
        $categoria = Categoria::findOrFail($id);
        $categoria->update(['activo' => 0]);
        return response()->json(['message' => 'Categoría desactivada']);
    }
}