Merge branch 'feature/CreateSupervisorListen' into 'develop'

create supervisor fpr dialogues

See merge request witel-back-end/crm!18
This commit is contained in:
2025-08-09 07:22:47 +00:00
3 changed files with 100 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
<?php
namespace App\Http\Controllers\ProvinceDashboard\OperatorDialogues;
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;
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,OperatorDialogue $operatorDialogue): JsonResponse
{
$operatorDialogue->update([
'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()
{
//
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace App\Http\Requests\ProvinceDashboard\OperatorDialogs;
use Illuminate\Foundation\Http\FormRequest;
class RateRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
*/
public function rules(): array
{
return [
'is_good' => 'required|in:0,1',
'description' => 'string',
];
}
}

View File

@@ -12,7 +12,10 @@ use App\Http\Controllers\HeadquartersDashboard\CumulativeCentersStatsController;
use App\Http\Controllers\HeadquartersDashboard\CumulativeKeypressStatsController; use App\Http\Controllers\HeadquartersDashboard\CumulativeKeypressStatsController;
use App\Http\Controllers\HeadquartersDashboard\CumulativeMessageRatingStatsController; use App\Http\Controllers\HeadquartersDashboard\CumulativeMessageRatingStatsController;
use App\Http\Controllers\HeadquartersDashboard\CumulativeVoiceRatingStatsController; use App\Http\Controllers\HeadquartersDashboard\CumulativeVoiceRatingStatsController;
use App\Http\Controllers\ProvinceDashboard\OperatorDialogues\OperatorController;
use App\Http\Controllers\ProvinceDashboard\OperatorDialogues\SupervisorController;
use App\Http\Middleware\SuperAdminCheck; use App\Http\Middleware\SuperAdminCheck;
use App\Models\OperatorDialogue;
use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Route;
Route::prefix('server')->group(function () { Route::prefix('server')->group(function () {
@@ -128,6 +131,31 @@ Route::prefix('server')->group(function () {
->group(function () { ->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
}); });
Route::middleware('auth')
->prefix('dialogs')
->name('dialogs.')
->group(function () {
Route::prefix('operator')
->name('operator.')
->controller(\App\Http\Controllers\ProvinceDashboard\OperatorDialogues\OperatorController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/excel', 'excel')->name('excel');
Route::get('/{operatorDialogue','show')->name('show');
});
Route::prefix('supervisor')
->name('supervisor.')
->controller(\App\Http\Controllers\ProvinceDashboard\OperatorDialogues\SupervisorController::class)
->group(function () {
Route::get('/', 'index')->name('index');
Route::get('/excel', 'excel')->name('excel');
Route::post('/rate/{operatorDialogue}', 'rate')->name('rate');
Route::get('/{operatorDialogue}', 'show')->name('show');
});
});
Route::middleware('auth') Route::middleware('auth')
->prefix('system_messages') ->prefix('system_messages')