modelos y controladores

This commit is contained in:
Marcos Elias Rios Nuñez 2026-06-01 09:19:40 -03:00
parent 1d6fd854b8
commit bce18056f3
4 changed files with 115 additions and 0 deletions

View File

@ -0,0 +1,61 @@
<?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
]);
}
}

View File

@ -0,0 +1,8 @@
<?php
namespace App\Http\Controllers;
abstract class Controller
{
//
}

13
app/Models/Consulta.php Executable file
View File

@ -0,0 +1,13 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
class Consulta extends Model
{
//
use HasFactory;
protected $fillable = ['id', 'asunto', 'categoria', 'mensaje', 'estado', 'archivo_path'];
}

33
app/Models/User.php Executable file
View File

@ -0,0 +1,33 @@
<?php
namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Illuminate\Database\Eloquent\Attributes\Fillable;
use Illuminate\Database\Eloquent\Attributes\Hidden;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
#[Fillable(['name', 'email', 'password'])]
#[Hidden(['password', 'remember_token'])]
class User extends Authenticatable
{
/** @use HasFactory<UserFactory> */
use HasApiTo kens, HasFactory, Notifiable;
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
}