Browse Source

feat: :sparkles: feat(agendamento-sobre-medida) adicionando componentes novos e suas requisições

ajustado  payload juntamente com componentes para listar e pucar as infoesta retornando o principal endereço do cliente, tipos de serviços e especialidades puxando do cadastro, criação de permissões e criação do agendamento

fase:dev | origin:escopo
kayo henrique 2 tuần trước cách đây
mục cha
commit
3bd8ac5d24

+ 9 - 0
app/Http/Controllers/AddressController.php

@@ -63,4 +63,13 @@ class AddressController extends Controller
             code: 204,
         );
     }
+
+    public function showPrimaryBySource(AddressRequest $request): JsonResponse
+    {
+        $address = $this->addressService->findPrimaryBySource($request->validated());
+
+        return $this->successResponse(
+            payload: new AddressResource($address),
+        );
+    }
 }

+ 2 - 0
app/Http/Controllers/SpecialityController.php

@@ -43,4 +43,6 @@ class SpecialityController extends Controller
         $this->service->delete($id);
         return $this->successResponse(message: __('messages.deleted'), code: 204);
     }
+
+    
 }

+ 9 - 0
app/Services/AddressService.php

@@ -53,4 +53,13 @@ class AddressService
         $address = Address::findOrFail($id);
         return $address->delete();
     }
+
+    public function findPrimaryBySource(array $data): ?Address
+    {
+        return Address::where('source', $data['source'])
+            ->where('source_id', $data['source_id'])
+            ->whereNull('deleted_at')
+            ->orderBy('is_primary', 'desc')
+            ->first();
+    }
 }

+ 2 - 0
database/seeders/UserTypePermissionSeeder.php

@@ -84,6 +84,8 @@ class UserTypePermissionSeeder extends Seeder
             ['scope' => 'config.client_favorite_provider', 'bits' => 271],
             ['scope' => 'config.client_payment_method', 'bits' => 271],
             ['scope' => 'config.custom_schedule', 'bits' => 271],
+            ['scope' => 'config.speciality', 'bits' => 271],
+            ['scope' => 'config.service_type', 'bits' => 271],
           ];
           $this->seedUserTypePermissions($clientPermissions, UserTypeEnum::CLIENT->value);
           break;

+ 2 - 1
routes/authRoutes/address.php

@@ -7,4 +7,5 @@ Route::get('/addresses', [AddressController::class, 'showBySource'])->middleware
 Route::get('/addresses/{id}', [AddressController::class, 'show'])->middleware('permission:config.address,view');
 Route::post('/addresses', [AddressController::class, 'store'])->middleware('permission:config.address,add');
 Route::put('/addresses/{id}', [AddressController::class, 'update'])->middleware('permission:config.address,edit');
-Route::delete('/addresses/{id}', [AddressController::class, 'destroy'])->middleware('permission:config.address,delete');
+Route::delete('/addresses/{id}', [AddressController::class, 'destroy'])->middleware('permission:config.address,delete');
+Route::get('/addresses-primary', [AddressController::class, 'showPrimaryBySource'])->middleware('permission:config.address,view');