Sfoglia il codice sorgente

refactor: ajusta retorno de pendingServicePackages

Gustavo Mantovani 5 giorni fa
parent
commit
f05ebd47cd

+ 1 - 0
app/Http/Resources/ServicePackageResource.php

@@ -20,6 +20,7 @@ class ServicePackageResource extends JsonResource
             'id'           => $this->id,
             'client_id'    => $this->client_id,
             'provider_id'  => $this->provider_id,
+            'provider'     => $this->whenLoaded('provider', fn () => new ProviderResource($this->provider)),
             'status'       => $this->status?->value,
             'schedule_ids' => $this->whenLoaded('items', fn () => $this->items->pluck('schedule_id')->values()),
             'items'        => $this->whenLoaded('items', fn () => ServicePackageItemResource::collection($this->items)),

+ 11 - 9
app/Services/ServicePackageService.php

@@ -14,7 +14,7 @@ class ServicePackageService
     public function getAll(): Collection
     {
         return ServicePackage::query()
-            ->with(['items.schedule'])
+            ->with(['items.schedule', 'provider.user'])
             ->orderBy('created_at', 'desc')
             ->get();
     }
@@ -22,13 +22,15 @@ class ServicePackageService
     public function findById(int $id): ?ServicePackage
     {
         return ServicePackage::query()
-            ->with(['items.schedule'])
+            ->with(['items.schedule', 'provider.user'])
             ->find($id);
     }
 
     public function create(array $data): ServicePackage
     {
-        return ServicePackage::create($data);
+        $model = ServicePackage::create($data);
+
+        return $model->fresh(['provider.user']);
     }
 
     public function update(int $id, array $data): ?ServicePackage
@@ -65,7 +67,7 @@ class ServicePackageService
 
         $model->update($data);
 
-        return $model->fresh();
+        return $model->fresh(['items.schedule', 'provider.user']);
     }
 
     public function delete(int $id): bool
@@ -84,7 +86,7 @@ class ServicePackageService
     public function getByUserId(int $userId): Collection
     {
         return ServicePackage::query()
-            ->with(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address'])
+            ->with(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address', 'provider.user'])
             ->whereHas('client', fn ($query) => $query->where('user_id', $userId))
             ->orderBy('created_at', 'desc')
             ->get();
@@ -93,7 +95,7 @@ class ServicePackageService
     public function getByProviderUserId(int $userId): Collection
     {
         return ServicePackage::query()
-            ->with(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address'])
+            ->with(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address', 'provider.user'])
             ->whereHas('provider', fn ($query) => $query->where('user_id', $userId))
             ->orderBy('created_at', 'desc')
             ->get();
@@ -124,7 +126,7 @@ class ServicePackageService
             }
         });
 
-        return $package->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address']);
+        return $package->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address', 'provider.user']);
     }
 
     public function refuseByProvider(int $id, int $userId): ServicePackage
@@ -152,7 +154,7 @@ class ServicePackageService
             $package->update(['status' => 'cancelled']);
         });
 
-        return $package->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address']);
+        return $package->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address', 'provider.user']);
     }
 
     //
@@ -193,7 +195,7 @@ class ServicePackageService
                 ]);
             }
 
-            return $servicePackage->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address']);
+            return $servicePackage->fresh(['items.schedule.client.user', 'items.schedule.provider.user', 'items.schedule.address', 'provider.user']);
         });
     }