File: /home/armgroup/libs/app/Http/Controllers/Admin/TicketController.php
<?php
namespace App\Http\Controllers\Admin;
use App\DataTables\TicketsDataTable;
use App\Enums\TicketStatus;
use App\Http\Controllers\Controller;
use App\Models\Ticket;
use BenSampo\Enum\Rules\EnumValue;
use Illuminate\Http\Request;
class TicketController extends Controller
{
public function __construct()
{
$this->middleware('permission:manage tickets');
}
public function index(TicketsDataTable $dataTable)
{
return $dataTable->render('admin.tickets.index');
}
public function create()
{
return view('admin.tickets.create');
}
public function edit(Ticket $ticket)
{
$ticket->load('messages', 'messages.attachments', 'user', 'messages.user', 'messages.user.roles');
return view('admin.tickets.edit', compact('ticket'));
}
public function update(Ticket $ticket, Request $request)
{
$request->validate([
'status' => ['required', new EnumValue(TicketStatus::class, false)],
]);
$ticket->update(['status' => $request->status]);
saveActivity("وضعیت تیکت {$ticket->slug} ویرایش شد", $ticket);
$this->doneMessage("وضعیت تیکت {$ticket->slug} با موفقیت ویرایش شد");
return back();
}
public function destroy(Ticket $ticket)
{
$ticket->delete();
saveActivity("تیکت {$ticket->slug} حذف شد", $ticket);
$this->doneMessage("تیکت {$ticket->slug} با موفقیت حذف شد");
return back();
}
}