Files
backend/app/Http/Controllers/ProvinceDashboard/OperatorDialogues/SupervisorController.php
2025-08-16 09:24:50 +03:30

56 lines
1.9 KiB
PHP

<?php
namespace App\Http\Controllers\ProvinceDashboard\OperatorDialogues;
use App\Exports\OperatorDialogues\SupervisorCartableExcel;
use App\Http\Controllers\Controller;
use App\Http\Requests\ProvinceDashboard\OperatorDialogs\RateRequest;
use app\Http\Traits\ApiResponse;
use App\Models\OperatorDialogue;
use App\Services\Dashboard\Province\OperatorDialogues\DataTableService;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
class SupervisorController extends Controller
{
use ApiResponse;
public function index(Request $request, DataTableService $dataTableService): JsonResponse
{
return response()->json($dataTableService->index($request));
}
public function rate(RateRequest $request): JsonResponse
{
OperatorDialogue::query()->updateOrCreate(
[
'cdr_unique_id' => $request->cdr_unique_id,
],
[
'cdr_unique_id' => $request->cdr_unique_id,
'date' => $request->date,
'supervisor_id' => auth()->user()->id,
'is_good' => $request->is_good,
'is_listen' => true,
'description' => $request->description,
]
);
return $this->successResponse();
}
public function show(OperatorDialogue $operatorDialogue): JsonResponse
{
return $this->successResponse($operatorDialogue);
}
public function excel(Request $request, DataTableService $dataTableService): BinaryFileResponse
{
$name = 'گزارش از کارتابل پیام های سیستمی ' . now()->format('Y-m-d H:i') . '.xlsx';
$data = $dataTableService->dataTable($request, true);
return Excel::download(new SupervisorCartableExcel($data['data']), $name);
}
}