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

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

class ReferenciaCelularController extends Controller
{
    public function index(Request $request)
    {
        $query = ReferenciaCelular::with('marca')->where('activo', 1);
        if ($request->has('marca_celular_id')) {
            $query->where('marca_celular_id', $request->marca_celular_id);
        }
        return response()->json($query->orderBy('nombre')->get());
    }

    public function store(Request $request)
    {
        $request->validate([
            'marca_celular_id' => 'required|exists:marcas_celular,id',
            'nombre'           => 'required|string|max:255'
        ]);
        $referencia = ReferenciaCelular::create([
            'marca_celular_id' => $request->marca_celular_id,
            'nombre'           => $request->nombre,
            'activo'           => 1
        ]);
        return response()->json($referencia->load('marca'), 201);
    }

    public function show($id)
    {
        return response()->json(ReferenciaCelular::with('marca')->findOrFail($id));
    }

    public function update(Request $request, $id)
    {
        $referencia = ReferenciaCelular::findOrFail($id);
        $request->validate([
            'marca_celular_id' => 'required|exists:marcas_celular,id',
            'nombre'           => 'required|string|max:255'
        ]);
        $referencia->update([
            'marca_celular_id' => $request->marca_celular_id,
            'nombre'           => $request->nombre
        ]);
        return response()->json($referencia->load('marca'));
    }

    public function destroy($id)
    {
        $referencia = ReferenciaCelular::findOrFail($id);
        $referencia->update(['activo' => 0]);
        return response()->json(['message' => 'Referencia desactivada']);
    }
}