Bladeren bron

feat: :sparkles: feat(agendamento-sob-medida): adicionado componente novo e sua requisição

foi adicionado a permissão para o provedor e tambem criado a customSchedluesAvaliableRequest para que pudesse listar as solicitações de trabalho no prestador

fase(deve) | origin:escopo
kayo henrique 2 weken geleden
bovenliggende
commit
31db4522b3

+ 2 - 1
app/Http/Controllers/CustomScheduleController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Http\Requests\CustomScheduleAvailableRequest;
 use App\Http\Requests\CustomScheduleRequest;
 use App\Http\Requests\CustomScheduleProposeRequest;
 use App\Http\Requests\CustomScheduleRefuseOpportunityRequest;
@@ -88,7 +89,7 @@ class CustomScheduleController extends Controller
     return $this->successResponse($grouped);
   }
 
-  public function available(CustomScheduleRequest $request)
+  public function available(CustomScheduleAvailableRequest $request)
   {
     try {
       $providerId = $request->query('provider_id');

+ 41 - 0
app/Http/Requests/CustomScheduleAvailableRequest.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace App\Http\Requests;
+
+use Illuminate\Foundation\Http\FormRequest;
+
+class CustomScheduleAvailableRequest 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
+    {
+        $rules = [
+            'provider_id' => 'required|exists:providers,id',
+        ];
+
+        return $rules;
+    }
+
+    /**
+     * Get custom messages for validator errors.
+     */
+    public function messages(): array
+    {
+        return [
+            'provider_id.required' => 'O ID do prestador é obrigatório.',
+            'provider_id.exists' => 'O prestador informado não existe.',
+        ];
+    }
+}

+ 1 - 1
app/Http/Requests/CustomScheduleRequest.php

@@ -34,7 +34,7 @@ class CustomScheduleRequest extends FormRequest
             'period_type' => 'required|in:2,4,6,8',
             'start_time' => 'required|date_format:H:i',
             'end_time' => 'required|date_format:H:i|after:start_time',
-            'quantity' => 'nullable|integer|min:1|max:10',
+            'quantity' => 'required|integer|min:1',
             'speciality_ids' => 'nullable|array',
             'speciality_ids.*' => 'exists:specialities,id',
         ];

+ 1 - 0
database/seeders/UserTypePermissionSeeder.php

@@ -70,6 +70,7 @@ class UserTypePermissionSeeder extends Seeder
             ['scope' => 'config.provider_blocked_day', 'bits' => 271],
             ['scope' => 'config.provider_services_types', 'bits' => 271],
             ['scope' => 'config.service_type', 'bits' => 1],
+            ['scope' => 'config.custom_schedule', 'bits' => 271],
           ];
           $this->seedUserTypePermissions($providerPermissions, UserTypeEnum::PROVIDER->value);
           break;

+ 2 - 2
routes/authRoutes/custom_schedule.php

@@ -10,8 +10,8 @@ Route::put('/custom-schedule/{id}', [CustomScheduleController::class, 'update'])
 Route::delete('/custom-schedule/{id}', [CustomScheduleController::class, 'destroy'])->middleware('permission:config.custom_schedule,delete');
 Route::get('/schedules/grouped-by-client/custom', [CustomScheduleController::class, 'groupedByClientCustom']);
 
-Route::get('/custom-schedule/available', [CustomScheduleController::class, 'available'])->middleware('permission:config.custom_schedule,view');
-Route::get('/custom-schedule/provider-proposals', [CustomScheduleController::class, 'providerProposals'])->middleware('permission:config.custom_schedule,view');
+Route::get('/custom-schedule-available', [CustomScheduleController::class, 'available'])->middleware('permission:config.custom_schedule,view');
+Route::get('/custom-schedule-provider-proposals', [CustomScheduleController::class, 'providerProposals'])->middleware('permission:config.custom_schedule,view');
 Route::get('/custom-schedule/{scheduleId}/proposals', [CustomScheduleController::class, 'opportunityProposals'])->middleware('permission:config.custom_schedule,view');
 Route::post('/custom-schedule/{scheduleId}/propose', [CustomScheduleController::class, 'propose'])->middleware('permission:config.custom_schedule,add');
 Route::post('/custom-schedule/{proposalId}/accept', [CustomScheduleController::class, 'acceptProposal'])->middleware('permission:config.custom_schedule,edit');