Просмотр исходного кода

refactor: classes do pagarme + logs

Gustavo Mantovani 2 недель назад
Родитель
Сommit
034fb472bd
34 измененных файлов с 104 добавлено и 210 удалено
  1. 0 25
      app/Data/Pagarme/Request/Objects/PagarmeArrayListData.php
  2. 0 22
      app/Data/Pagarme/Request/Objects/PagarmeArrayObjectData.php
  3. 1 1
      app/Data/Pagarme/Request/PagarmeCardRequestData/PagarmeCardBillingAddressData.php
  4. 1 2
      app/Data/Pagarme/Request/PagarmeCardRequestData/PagarmeCardRequestData.php
  5. 1 1
      app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerAddressRequestData.php
  6. 1 1
      app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerPhonesRequestData/PagarmeCustomerPhoneData.php
  7. 1 1
      app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerPhonesRequestData/PagarmeCustomerPhonesRequestData.php
  8. 1 3
      app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerRequestData.php
  9. 1 3
      app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerUpdateRequestData.php
  10. 11 7
      app/Data/Pagarme/Request/PagarmeOrderRequestData/PagarmeOrderRequestData.php
  11. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientAutomaticAnticipationSettingsData.php
  12. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientBankAccountData.php
  13. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientAddressData.php
  14. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientPhoneNumbersData/PagarmeRecipientPhoneData.php
  15. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientPhoneNumbersData/PagarmeRecipientPhoneNumbersData.php
  16. 2 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientRegisterInformationData.php
  17. 2 5
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRequestData.php
  18. 1 1
      app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientTransferSettingsData.php
  19. 0 20
      app/Data/Pagarme/Response/Objects/PagarmeArrayListData.php
  20. 0 20
      app/Data/Pagarme/Response/Objects/PagarmeArrayObjectData.php
  21. 1 1
      app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerAddressResponseData.php
  22. 1 1
      app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerPhonesResponseData/PagarmeCustomerPhonesResponseData.php
  23. 1 1
      app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerPhonesResponseData/PagarmePhoneResponseData.php
  24. 2 3
      app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerResponseData.php
  25. 23 19
      app/Data/Pagarme/Response/PagarmeOrderResponseData/PagarmeOrderResponseData.php
  26. 1 1
      app/Data/Pagarme/Response/PagarmeRecipientResponseData/PagarmeRecipientBankAccountResponseData.php
  27. 1 3
      app/Data/Pagarme/Response/PagarmeRecipientResponseData/PagarmeRecipientResponseData.php
  28. 17 1
      app/Services/Pagarme/Concerns/SendsPagarmeRequests.php
  29. 2 2
      app/Services/Pagarme/PagarmeCardService.php
  30. 6 6
      app/Services/Pagarme/PagarmeCustomerService.php
  31. 8 31
      app/Services/Pagarme/PagarmePaymentService.php
  32. 9 9
      app/Services/Pagarme/PagarmeRecipientService.php
  33. 0 11
      app/Services/PaymentService.php
  34. 4 3
      pint.json

+ 0 - 25
app/Data/Pagarme/Request/Objects/PagarmeArrayListData.php

@@ -1,25 +0,0 @@
-<?php
-
-namespace App\Data\Pagarme\Request\Objects;
-
-use App\Data\Pagarme\PagarmeData;
-
-readonly class PagarmeArrayListData extends PagarmeData
-{
-    private function __construct(
-        private array $items,
-    ) {}
-
-    public static function fromArray(array $items): self
-    {
-        return new self($items);
-    }
-
-    public function toArray(): array
-    {
-        return array_map(
-            fn (mixed $item) => $item instanceof PagarmeData ? $item->toArray() : $item,
-            $this->items,
-        );
-    }
-}

+ 0 - 22
app/Data/Pagarme/Request/Objects/PagarmeArrayObjectData.php

@@ -1,22 +0,0 @@
-<?php
-
-namespace App\Data\Pagarme\Request\Objects;
-
-use App\Data\Pagarme\PagarmeData;
-
-readonly class PagarmeArrayObjectData extends PagarmeData
-{
-    private function __construct(
-        private array $value,
-    ) {}
-
-    public static function fromArray(array $value): self
-    {
-        return new self($value);
-    }
-
-    public function toArray(): array
-    {
-        return $this->filterFilledRecursive($this->value);
-    }
-}

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeCardBillingAddressData.php → app/Data/Pagarme/Request/PagarmeCardRequestData/PagarmeCardBillingAddressData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeCardRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 2
app/Data/Pagarme/Request/PagarmeCardRequestData.php → app/Data/Pagarme/Request/PagarmeCardRequestData/PagarmeCardRequestData.php

@@ -1,9 +1,8 @@
 <?php
 
-namespace App\Data\Pagarme\Request;
+namespace App\Data\Pagarme\Request\PagarmeCardRequestData;
 
 use App\Data\Pagarme\PagarmeData;
-use App\Data\Pagarme\Request\Objects\PagarmeCardBillingAddressData;
 
 readonly class PagarmeCardRequestData extends PagarmeData
 {

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeCustomerAddressRequestData.php → app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerAddressRequestData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeCustomerPhoneData.php → app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerPhonesRequestData/PagarmeCustomerPhoneData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerPhonesRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeCustomerPhonesRequestData.php → app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerPhonesRequestData/PagarmeCustomerPhonesRequestData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerPhonesRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 3
app/Data/Pagarme/Request/PagarmeCustomerRequestData.php → app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerRequestData.php

@@ -1,10 +1,8 @@
 <?php
 
-namespace App\Data\Pagarme\Request;
+namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData;
 
 use App\Data\Pagarme\PagarmeData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerAddressRequestData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerPhonesRequestData;
 
 readonly class PagarmeCustomerRequestData extends PagarmeData
 {

+ 1 - 3
app/Data/Pagarme/Request/PagarmeCustomerUpdateRequestData.php → app/Data/Pagarme/Request/PagarmeCustomerRequestData/PagarmeCustomerUpdateRequestData.php

@@ -1,10 +1,8 @@
 <?php
 
-namespace App\Data\Pagarme\Request;
+namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData;
 
 use App\Data\Pagarme\PagarmeData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerAddressRequestData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerPhonesRequestData;
 
 readonly class PagarmeCustomerUpdateRequestData extends PagarmeData
 {

+ 11 - 7
app/Data/Pagarme/Request/PagarmeOrderRequestData.php → app/Data/Pagarme/Request/PagarmeOrderRequestData/PagarmeOrderRequestData.php

@@ -1,19 +1,23 @@
 <?php
 
-namespace App\Data\Pagarme\Request;
+namespace App\Data\Pagarme\Request\PagarmeOrderRequestData;
 
 use App\Data\Pagarme\PagarmeData;
-use App\Data\Pagarme\Request\Objects\PagarmeArrayListData;
-use App\Data\Pagarme\Request\Objects\PagarmeArrayObjectData;
 
+/**
+ * @param  array<int, array{code?: string, amount?: int, quantity?: int, description?: string, ...}>  $items  Lista de itens do pedido
+ * @param  array<int, array{payment_method: string, ...}>  $payments  Lista de formas de pagamento
+ * @param  array<string, mixed>  $metadata  Metadados do pedido (ex: payment_id, schedule_id, client_id, provider_id)
+ * @param  array<string, mixed>|null  $customer  Dados do cliente (name, email, document, type, etc.)
+ */
 readonly class PagarmeOrderRequestData extends PagarmeData
 {
     public function __construct(
         public string $code,
-        public PagarmeArrayListData $items,
-        public PagarmeArrayListData $payments,
-        public PagarmeArrayObjectData $metadata,
-        public ?PagarmeArrayObjectData $customer = null,
+        public array $items,
+        public array $payments,
+        public array $metadata,
+        public ?array $customer = null,
         public ?string $customerId = null,
         public bool $closed = true,
         public ?string $channel = null,

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientAutomaticAnticipationSettingsData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientAutomaticAnticipationSettingsData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientBankAccountData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientBankAccountData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientAddressData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientAddressData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientPhoneData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientPhoneNumbersData/PagarmeRecipientPhoneData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientPhoneNumbersData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientPhoneNumbersData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientPhoneNumbersData/PagarmeRecipientPhoneNumbersData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientPhoneNumbersData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 2 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientRegisterInformationData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRegisterInformationData/PagarmeRecipientRegisterInformationData.php

@@ -1,8 +1,9 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData;
 
 use App\Data\Pagarme\PagarmeData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientPhoneNumbersData\PagarmeRecipientPhoneNumbersData;
 
 readonly class PagarmeRecipientRegisterInformationData extends PagarmeData
 {

+ 2 - 5
app/Data/Pagarme/Request/PagarmeRecipientRequestData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientRequestData.php

@@ -1,12 +1,9 @@
 <?php
 
-namespace App\Data\Pagarme\Request;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData;
 
 use App\Data\Pagarme\PagarmeData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientAutomaticAnticipationSettingsData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientBankAccountData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientRegisterInformationData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientTransferSettingsData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientRegisterInformationData;
 
 readonly class PagarmeRecipientRequestData extends PagarmeData
 {

+ 1 - 1
app/Data/Pagarme/Request/Objects/PagarmeRecipientTransferSettingsData.php → app/Data/Pagarme/Request/PagarmeRecipientRequestData/PagarmeRecipientTransferSettingsData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Request\Objects;
+namespace App\Data\Pagarme\Request\PagarmeRecipientRequestData;
 
 use App\Data\Pagarme\PagarmeData;
 

+ 0 - 20
app/Data/Pagarme/Response/Objects/PagarmeArrayListData.php

@@ -1,20 +0,0 @@
-<?php
-
-namespace App\Data\Pagarme\Response\Objects;
-
-readonly class PagarmeArrayListData
-{
-    private function __construct(
-        private array $items,
-    ) {}
-
-    public static function fromArray(array $items): self
-    {
-        return new self($items);
-    }
-
-    public function toArray(): array
-    {
-        return $this->items;
-    }
-}

+ 0 - 20
app/Data/Pagarme/Response/Objects/PagarmeArrayObjectData.php

@@ -1,20 +0,0 @@
-<?php
-
-namespace App\Data\Pagarme\Response\Objects;
-
-readonly class PagarmeArrayObjectData
-{
-    private function __construct(
-        private array $value,
-    ) {}
-
-    public static function fromArray(array $value): self
-    {
-        return new self($value);
-    }
-
-    public function toArray(): array
-    {
-        return $this->value;
-    }
-}

+ 1 - 1
app/Data/Pagarme/Response/Objects/PagarmeCustomerAddressResponseData.php → app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerAddressResponseData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Response\Objects;
+namespace App\Data\Pagarme\Response\PagarmeCustomerResponseData;
 
 readonly class PagarmeCustomerAddressResponseData
 {

+ 1 - 1
app/Data/Pagarme/Response/Objects/PagarmeCustomerPhonesResponseData.php → app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerPhonesResponseData/PagarmeCustomerPhonesResponseData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Response\Objects;
+namespace App\Data\Pagarme\Response\PagarmeCustomerResponseData\PagarmeCustomerPhonesResponseData;
 
 readonly class PagarmeCustomerPhonesResponseData
 {

+ 1 - 1
app/Data/Pagarme/Response/Objects/PagarmePhoneResponseData.php → app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerPhonesResponseData/PagarmePhoneResponseData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Response\Objects;
+namespace App\Data\Pagarme\Response\PagarmeCustomerResponseData\PagarmeCustomerPhonesResponseData;
 
 readonly class PagarmePhoneResponseData
 {

+ 2 - 3
app/Data/Pagarme/Response/PagarmeCustomerResponseData.php → app/Data/Pagarme/Response/PagarmeCustomerResponseData/PagarmeCustomerResponseData.php

@@ -1,9 +1,8 @@
 <?php
 
-namespace App\Data\Pagarme\Response;
+namespace App\Data\Pagarme\Response\PagarmeCustomerResponseData;
 
-use App\Data\Pagarme\Response\Objects\PagarmeCustomerAddressResponseData;
-use App\Data\Pagarme\Response\Objects\PagarmeCustomerPhonesResponseData;
+use App\Data\Pagarme\Response\PagarmeCustomerResponseData\PagarmeCustomerPhonesResponseData\PagarmeCustomerPhonesResponseData;
 
 readonly class PagarmeCustomerResponseData
 {

+ 23 - 19
app/Data/Pagarme/Response/PagarmeOrderResponseData.php → app/Data/Pagarme/Response/PagarmeOrderResponseData/PagarmeOrderResponseData.php

@@ -1,10 +1,14 @@
 <?php
 
-namespace App\Data\Pagarme\Response;
-
-use App\Data\Pagarme\Response\Objects\PagarmeArrayListData;
-use App\Data\Pagarme\Response\Objects\PagarmeArrayObjectData;
+namespace App\Data\Pagarme\Response\PagarmeOrderResponseData;
 
+/**
+ * @param  array<int, array>  $items  Itens do pedido (code, amount, quantity, description, etc.)
+ * @param  array<string, mixed>|null  $customer  Dados do cliente retornados pela API
+ * @param  array<int, array>  $charges  Cobrancas do pedido (status, amount, payment_method, last_transaction, etc.)
+ * @param  array<int, array>  $checkouts  Checkouts do pedido
+ * @param  array<string, mixed>  $metadata  Metadados retornados pela API
+ */
 readonly class PagarmeOrderResponseData
 {
     public function __construct(
@@ -14,11 +18,11 @@ readonly class PagarmeOrderResponseData
         public ?string $currency,
         public ?bool $closed,
         public ?string $status,
-        public PagarmeArrayListData $items,
-        public ?PagarmeArrayObjectData $customer,
-        public PagarmeArrayListData $charges,
-        public PagarmeArrayListData $checkouts,
-        public PagarmeArrayObjectData $metadata,
+        public array $items,
+        public ?array $customer,
+        public array $charges,
+        public array $checkouts,
+        public array $metadata,
         public ?string $createdAt = null,
         public ?string $updatedAt = null,
         public ?string $closedAt = null,
@@ -33,11 +37,11 @@ readonly class PagarmeOrderResponseData
             currency: $payload['currency'] ?? null,
             closed: $payload['closed'] ?? null,
             status: $payload['status'] ?? null,
-            items: PagarmeArrayListData::fromArray($payload['items'] ?? []),
-            customer: ! empty($payload['customer']) ? PagarmeArrayObjectData::fromArray($payload['customer']) : null,
-            charges: PagarmeArrayListData::fromArray($payload['charges'] ?? []),
-            checkouts: PagarmeArrayListData::fromArray($payload['checkouts'] ?? []),
-            metadata: PagarmeArrayObjectData::fromArray($payload['metadata'] ?? []),
+            items: $payload['items'] ?? [],
+            customer: ! empty($payload['customer']) ? $payload['customer'] : null,
+            charges: $payload['charges'] ?? [],
+            checkouts: $payload['checkouts'] ?? [],
+            metadata: $payload['metadata'] ?? [],
             createdAt: $payload['created_at'] ?? null,
             updatedAt: $payload['updated_at'] ?? null,
             closedAt: $payload['closed_at'] ?? null,
@@ -57,15 +61,15 @@ readonly class PagarmeOrderResponseData
             'amount'     => $this->amount,
             'currency'   => $this->currency,
             'closed'     => $this->closed,
-            'items'      => $this->items->toArray(),
-            'customer'   => $this->customer?->toArray(),
+            'items'      => $this->items,
+            'customer'   => $this->customer,
             'status'     => $this->status,
             'created_at' => $this->createdAt,
             'updated_at' => $this->updatedAt,
             'closed_at'  => $this->closedAt,
-            'charges'    => $this->charges->toArray(),
-            'checkouts'  => $this->checkouts->toArray(),
-            'metadata'   => $this->metadata->toArray(),
+            'charges'    => $this->charges,
+            'checkouts'  => $this->checkouts,
+            'metadata'   => $this->metadata,
         ];
     }
 }

+ 1 - 1
app/Data/Pagarme/Response/Objects/PagarmeRecipientBankAccountResponseData.php → app/Data/Pagarme/Response/PagarmeRecipientResponseData/PagarmeRecipientBankAccountResponseData.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Response\Objects;
+namespace App\Data\Pagarme\Response\PagarmeRecipientResponseData;
 
 readonly class PagarmeRecipientBankAccountResponseData
 {

+ 1 - 3
app/Data/Pagarme/Response/PagarmeRecipientResponseData.php → app/Data/Pagarme/Response/PagarmeRecipientResponseData/PagarmeRecipientResponseData.php

@@ -1,8 +1,6 @@
 <?php
 
-namespace App\Data\Pagarme\Response;
-
-use App\Data\Pagarme\Response\Objects\PagarmeRecipientBankAccountResponseData;
+namespace App\Data\Pagarme\Response\PagarmeRecipientResponseData;
 
 readonly class PagarmeRecipientResponseData
 {

+ 17 - 1
app/Services/Pagarme/Concerns/SendsPagarmeRequests.php

@@ -24,14 +24,30 @@ trait SendsPagarmeRequests
                 ->send($method, $endpoint, ['json' => $payload])
                 ->throw();
 
-            return $response->json() ?? [];
+            $result = $response->json() ?? [];
+
+            if (app()->environment('local', 'development')) {
+                Log::channel('pagarme')->info('Pagar.me request succeeded', [
+                    'method'   => strtoupper($method),
+                    'endpoint' => $endpoint,
+                    'payload'  => $payload,
+                    'result'   => $result,
+                ]);
+            }
+
+            return $result;
         } catch (Throwable $e) {
+            $responseBody = method_exists($e, 'getResponse') ? $e->getResponse()?->json() : null;
+
             Log::channel('pagarme')->error('Pagar.me request failed', [
                 'method'    => strtoupper($method),
                 'endpoint'  => $endpoint,
                 'payload'   => $payload,
                 'exception' => $e->getMessage(),
+                'result'    => $responseBody,
             ]);
+
+            throw new \RuntimeException($errorMessage, previous: $e);
         }
     }
 

+ 2 - 2
app/Services/Pagarme/PagarmeCardService.php

@@ -2,8 +2,8 @@
 
 namespace App\Services\Pagarme;
 
-use App\Data\Pagarme\Request\Objects\PagarmeCardBillingAddressData;
-use App\Data\Pagarme\Request\PagarmeCardRequestData;
+use App\Data\Pagarme\Request\PagarmeCardRequestData\PagarmeCardBillingAddressData;
+use App\Data\Pagarme\Request\PagarmeCardRequestData\PagarmeCardRequestData;
 use App\Data\Pagarme\Response\PagarmeCardResponseData;
 use App\Models\Address;
 use App\Models\ClientPaymentMethod;

+ 6 - 6
app/Services/Pagarme/PagarmeCustomerService.php

@@ -2,12 +2,12 @@
 
 namespace App\Services\Pagarme;
 
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerAddressRequestData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerPhoneData;
-use App\Data\Pagarme\Request\Objects\PagarmeCustomerPhonesRequestData;
-use App\Data\Pagarme\Request\PagarmeCustomerRequestData;
-use App\Data\Pagarme\Request\PagarmeCustomerUpdateRequestData;
-use App\Data\Pagarme\Response\PagarmeCustomerResponseData;
+use App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerAddressRequestData;
+use App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerPhonesRequestData\PagarmeCustomerPhoneData;
+use App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerPhonesRequestData\PagarmeCustomerPhonesRequestData;
+use App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerRequestData;
+use App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerUpdateRequestData;
+use App\Data\Pagarme\Response\PagarmeCustomerResponseData\PagarmeCustomerResponseData;
 use App\Models\Client;
 use App\Services\Pagarme\Concerns\SendsPagarmeRequests;
 use Illuminate\Support\Facades\Log;

+ 8 - 31
app/Services/Pagarme/PagarmePaymentService.php

@@ -2,10 +2,8 @@
 
 namespace App\Services\Pagarme;
 
-use App\Data\Pagarme\Request\Objects\PagarmeArrayListData;
-use App\Data\Pagarme\Request\Objects\PagarmeArrayObjectData;
-use App\Data\Pagarme\Request\PagarmeOrderRequestData;
-use App\Data\Pagarme\Response\PagarmeOrderResponseData;
+use App\Data\Pagarme\Request\PagarmeOrderRequestData\PagarmeOrderRequestData;
+use App\Data\Pagarme\Response\PagarmeOrderResponseData\PagarmeOrderResponseData;
 use App\Models\Payment;
 use App\Models\PaymentTransfer;
 use App\Services\Pagarme\Concerns\SendsPagarmeRequests;
@@ -96,15 +94,15 @@ class PagarmePaymentService
 
         $requestData = new PagarmeOrderRequestData(
             code: $this->ensurePaymentCode($payment),
-            items: PagarmeArrayListData::fromArray($this->validateItems($items)),
-            payments: PagarmeArrayListData::fromArray([$this->filterFilledRecursive($paymentMethod)]),
-            metadata: PagarmeArrayObjectData::fromArray(array_merge([
+            items: $this->validateItems($items),
+            payments: [$this->filterFilledRecursive($paymentMethod)],
+            metadata: array_merge([
                 'payment_id'  => (string) $payment->id,
                 'schedule_id' => (string) $payment->schedule_id,
                 'client_id'   => (string) $payment->client_id,
                 'provider_id' => (string) $payment->provider_id,
-            ], $options['metadata'] ?? [])),
-            customer: ! empty($customerObjectPayload) ? PagarmeArrayObjectData::fromArray($customerObjectPayload) : null,
+            ], $options['metadata'] ?? []),
+            customer: ! empty($customerObjectPayload) ? $customerObjectPayload : null,
             customerId: $this->filled($customerIdPayload) ? (string) $customerIdPayload : null,
             closed: $options['closed'] ?? true,
             channel: $options['channel'] ?? null,
@@ -327,27 +325,6 @@ class PagarmePaymentService
         return $filtered;
     }
 
-    private function gatewayErrorMessage(mixed $responseBody): string
-    {
-        $message = is_array($responseBody) ? ($responseBody['message'] ?? null) : null;
-
-        if ($message === 'Token not found.') {
-            return 'Token do cartao nao encontrado no Pagar.me. Gere um novo card_token ou informe um card_id valido.';
-        }
-
-        $errorMessages = is_array($responseBody)
-            ? collect($responseBody['errors'] ?? [])->pluck('message')->filter()->implode('; ')
-            : '';
-
-        $translatedMessage = $this->translateGatewayMessage($message ?: $errorMessages);
-
-        if ($translatedMessage) {
-            return $translatedMessage;
-        }
-
-        return 'Erro ao criar pedido de pagamento no Pagar.me.';
-    }
-
     private function translateGatewayMessage(?string $message): ?string
     {
         if (! $message) {
@@ -355,7 +332,7 @@ class PagarmePaymentService
         }
 
         if (str_contains($message, 'Sem ambiente configurado')) {
-            return 'Pix nao esta habilitado ou configurado neste ambiente do Pagar.me.';
+            return 'Pix não esta habilitado ou configurado neste ambiente do Pagar.me.';
         }
 
         return $message;

+ 9 - 9
app/Services/Pagarme/PagarmeRecipientService.php

@@ -2,16 +2,16 @@
 
 namespace App\Services\Pagarme;
 
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientAddressData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientAutomaticAnticipationSettingsData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientBankAccountData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientPhoneData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientPhoneNumbersData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientRegisterInformationData;
-use App\Data\Pagarme\Request\Objects\PagarmeRecipientTransferSettingsData;
 use App\Data\Pagarme\Request\PagarmeBankAccountUpdateRequestData;
-use App\Data\Pagarme\Request\PagarmeRecipientRequestData;
-use App\Data\Pagarme\Response\PagarmeRecipientResponseData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientAutomaticAnticipationSettingsData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientBankAccountData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientAddressData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientPhoneNumbersData\PagarmeRecipientPhoneData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientPhoneNumbersData\PagarmeRecipientPhoneNumbersData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRegisterInformationData\PagarmeRecipientRegisterInformationData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientRequestData;
+use App\Data\Pagarme\Request\PagarmeRecipientRequestData\PagarmeRecipientTransferSettingsData;
+use App\Data\Pagarme\Response\PagarmeRecipientResponseData\PagarmeRecipientResponseData;
 use App\Models\Provider;
 use App\Services\Pagarme\Concerns\SendsPagarmeRequests;
 use Carbon\Carbon;

+ 0 - 11
app/Services/PaymentService.php

@@ -215,22 +215,11 @@ class PaymentService
             ? []
             : ['split' => $split];
 
-        \Log::info('pixOptions: '.json_encode($pixOptions));
-
         try {
             $creditCardReference = $paymentMethod === 'credit_card'
                 ? $this->resolveCreditCardReference($clientPaymentMethod, $options)
                 : [];
 
-            if ($paymentMethod === 'credit_card') {
-                Log::channel('pagarme')->info('Resolved credit card reference for payment', [
-                    'payment_id'               => $payment->id,
-                    'client_payment_method_id' => $clientPaymentMethod?->id,
-                    'reference_type'           => array_key_first($creditCardReference),
-                    'gateway_card_id'          => $clientPaymentMethod?->gateway_card_id,
-                ]);
-            }
-
             $orderResponse = $paymentMethod === 'credit_card'
                 ? $this->pagarmePaymentService->createOrderWithCreditCard(
                     payment: $payment,

+ 4 - 3
pint.json

@@ -3,14 +3,15 @@
     "exclude": [
         "database/migrations",
         "routes",
-        "app/Models"
+        "app/Models",
+        "app/Enums",
+        "app/Http/Requests"
     ],
     "rules": {
         "binary_operator_spaces": {
             "default": "single_space",
             "operators": {
-                "=>": "align_single_space_minimal",
-                "=": "align_single_space_minimal"
+                "=>": "align_single_space_minimal"
             }
         }
     }