PagarmeBankAccountUpdateRequestData.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Data\Pagarme\Request;
  3. use App\Data\Pagarme\PagarmeData;
  4. readonly class PagarmeBankAccountUpdateRequestData extends PagarmeData
  5. {
  6. public function __construct(
  7. public string $holderName,
  8. public string $holderType,
  9. public string $holderDocument,
  10. public string $bank,
  11. public string $branchNumber,
  12. public ?string $branchCheckDigit,
  13. public string $accountNumber,
  14. public string $accountCheckDigit,
  15. public string $type,
  16. ) {}
  17. public static function fromArray(array $payload): self
  18. {
  19. return new self(
  20. holderName: $payload['holder_name'],
  21. holderType: $payload['holder_type'],
  22. holderDocument: preg_replace('/\D+/', '', $payload['holder_document']),
  23. bank: $payload['bank'],
  24. branchNumber: $payload['branch_number'],
  25. branchCheckDigit: $payload['branch_check_digit'] ?? null,
  26. accountNumber: $payload['account_number'],
  27. accountCheckDigit: $payload['account_check_digit'],
  28. type: $payload['type'],
  29. );
  30. }
  31. public function toArray(): array
  32. {
  33. return $this->filterFilledRecursive([
  34. 'bank_account' => [
  35. 'holder_name' => $this->holderName,
  36. 'holder_type' => $this->holderType,
  37. 'holder_document' => $this->holderDocument,
  38. 'bank' => $this->bank,
  39. 'branch_number' => $this->branchNumber,
  40. 'branch_check_digit' => $this->branchCheckDigit,
  41. 'account_number' => $this->accountNumber,
  42. 'account_check_digit' => $this->accountCheckDigit,
  43. 'type' => $this->type,
  44. ],
  45. ]);
  46. }
  47. }