|
|
@@ -3,6 +3,7 @@
|
|
|
namespace App\Services;
|
|
|
|
|
|
use App\Models\Client;
|
|
|
+use App\Models\ClientFavoriteProvider;
|
|
|
use App\Models\ClientProviderBlock;
|
|
|
use App\Models\Provider;
|
|
|
use App\Models\ProviderClientBlock;
|
|
|
@@ -52,12 +53,12 @@ class ReviewService
|
|
|
case 'client':
|
|
|
$schedule = Schedule::find($data['schedule_id']);
|
|
|
$provider = Provider::find($schedule->provider_id);
|
|
|
- $provider->updateAverageRating();
|
|
|
+ $provider->updateAverageRating((float) $data['stars']);
|
|
|
break;
|
|
|
case 'provider':
|
|
|
$schedule = Schedule::find($data['schedule_id']);
|
|
|
$client = Client::find($schedule->client_id);
|
|
|
- $client->updateAverageRating();
|
|
|
+ $client->updateAverageRating((float) $data['stars']);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -66,23 +67,51 @@ class ReviewService
|
|
|
$review->improvements()->sync($data['improvements_ids']);
|
|
|
}
|
|
|
|
|
|
- if($data['block_provider'] == true) {
|
|
|
+ if (!empty($data['block_provider'])) {
|
|
|
$schedule = Schedule::find($data['schedule_id']);
|
|
|
+ $alreadyBlocked = ClientProviderBlock::where('client_id', $schedule->client_id)
|
|
|
+ ->where('provider_id', $schedule->provider_id)
|
|
|
+ ->whereNull('deleted_at')
|
|
|
+ ->exists();
|
|
|
|
|
|
- $client_provider_block = new ClientProviderBlock();
|
|
|
- $client_provider_block->client_id = $schedule->client_id;
|
|
|
- $client_provider_block->provider_id = $schedule->provider_id;
|
|
|
- $client_provider_block->save();
|
|
|
+ if (!$alreadyBlocked) {
|
|
|
+ ClientProviderBlock::create([
|
|
|
+ 'client_id' => $schedule->client_id,
|
|
|
+ 'provider_id' => $schedule->provider_id,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if($data['block_client'] == true) {
|
|
|
+
|
|
|
+ if (!empty($data['block_client'])) {
|
|
|
$schedule = Schedule::find($data['schedule_id']);
|
|
|
- $provider_client_block = new ProviderClientBlock();
|
|
|
- $provider_client_block->provider_id = $schedule->provider_id;
|
|
|
- $provider_client_block->client_id = $schedule->client_id;
|
|
|
- $provider_client_block->save();
|
|
|
+ $alreadyBlocked = ProviderClientBlock::where('provider_id', $schedule->provider_id)
|
|
|
+ ->where('client_id', $schedule->client_id)
|
|
|
+ ->whereNull('deleted_at')
|
|
|
+ ->exists();
|
|
|
+
|
|
|
+ if (!$alreadyBlocked) {
|
|
|
+ ProviderClientBlock::create([
|
|
|
+ 'provider_id' => $schedule->provider_id,
|
|
|
+ 'client_id' => $schedule->client_id,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ if (!empty($data['favorite_provider'])) {
|
|
|
+ $schedule = Schedule::find($data['schedule_id']);
|
|
|
+ $alreadyFavorited = ClientFavoriteProvider::where('client_id', $schedule->client_id)
|
|
|
+ ->where('provider_id', $schedule->provider_id)
|
|
|
+ ->whereNull('deleted_at')
|
|
|
+ ->exists();
|
|
|
+
|
|
|
+ if (!$alreadyFavorited) {
|
|
|
+ ClientFavoriteProvider::create([
|
|
|
+ 'client_id' => $schedule->client_id,
|
|
|
+ 'provider_id' => $schedule->provider_id,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
DB::commit();
|
|
|
return $review;
|
|
|
} catch (Exception $e) {
|