tickets/app/Http/Controllers/ConsultaController.php

62 lines
1.6 KiB
PHP
Executable File

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Consulta;
class ConsultaController extends Controller
{
//
public function index()
{
$consultas = Consulta::orderBy('created_at', 'desc')->get();
return view('consultas.index', compact('consultas'));
}
public function create()
{
return view('consultas.create');
}
public function store(Request $request)
{
$request->validate([
'asunto' => 'required|max:255',
'categoria' => 'required',
'mensaje' => 'required|min:10',
'archivo_adjunto' => 'nullable|file|max:2048'
]);
$path = null;
if ($request->hasFile('archivo_adjunto')) {
$path = $request->file('archivo_adjunto')->store('adjuntos', 'public');
}
Consulta::create([
'asunto' => $request->asunto,
'categoria' => $request->categoria,
'mensaje' => $request->mensaje,
'archivo_path' => $path
]);
return redirect('/consultas')->with('exito', '¡Tu consulta fue enviada!');
}
public function getTicketStatus($id)
{
$consulta = Consulta::find($id);
if (!$consulta) {
return response()->json(['error' => 'Consulta no encontrada'], 404);
}
return response()->json([
'id' => $consulta->id,
'asunto' => $consulta->asunto,
'estado_actual' => $consulta->estado,
'ultima_actualizacion' => $consulta->updated_at
]);
}
}