62 lines
1.6 KiB
PHP
Executable File
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
|
|
]);
|
|
}
|
|
}
|