Răsfoiți Sursa

fix: add apply de taxas na busca de prestadores assim como nos dados do dashboard

Gustavo Mantovani 2 săptămâni în urmă
părinte
comite
b1561fc5b0
1 a modificat fișierele cu 15 adăugiri și 0 ștergeri
  1. 15 0
      app/Services/SearchService.php

+ 15 - 0
app/Services/SearchService.php

@@ -134,6 +134,10 @@ class SearchService
             $arr = is_array($item) ? $item : $item->toArray();
 
             $arr['profile_media_url'] = $mediaUrls[$arr['profile_media_id'] ?? null] ?? null;
+            $arr['daily_price_8h']     = $this->applyCreditCardFee($arr['daily_price_8h'] ?? null);
+            $arr['daily_price_6h']     = $this->applyCreditCardFee($arr['daily_price_6h'] ?? null);
+            $arr['daily_price_4h']     = $this->applyCreditCardFee($arr['daily_price_4h'] ?? null);
+            $arr['daily_price_2h']     = $this->applyCreditCardFee($arr['daily_price_2h'] ?? null);
 
             unset($arr['profile_media_id']);
 
@@ -143,6 +147,17 @@ class SearchService
 
     //
 
+    private function applyCreditCardFee(?float $price): ?float
+    {
+        if ($price === null) {
+            return null;
+        }
+
+        $rate = (float) config('services.pagarme.platform_credit_card_fee_rate');
+
+        return round($price * (1 + $rate), 2);
+    }
+
     private function distanceSelect(?float $clientLatitude, ?float $clientLongitude): \Illuminate\Contracts\Database\Query\Expression
     {
         return DistanceService::sqlExpression($clientLatitude, $clientLongitude);