BankAccountUpdateRequestData.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Data\Pagarme\Request;
  3. use App\Data\Pagarme\PagarmeData;
  4. final readonly class BankAccountUpdateRequestData 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. self::requireFilled($this->holderName, 'bank_account.holder_name');
  18. self::requireIn($this->holderType, ['individual', 'company'], 'bank_account.holder_type');
  19. self::requireFilled($this->holderDocument, 'bank_account.holder_document');
  20. self::requireFilled($this->bank, 'bank_account.bank');
  21. self::requireFilled($this->branchNumber, 'bank_account.branch_number');
  22. self::requireFilled($this->accountNumber, 'bank_account.account_number');
  23. self::requireFilled($this->accountCheckDigit, 'bank_account.account_check_digit');
  24. self::requireFilled($this->type, 'bank_account.type');
  25. }
  26. public function toArray(): array
  27. {
  28. return $this->filterFilledRecursive([
  29. 'bank_account' => [
  30. 'holder_name' => $this->holderName,
  31. 'holder_type' => $this->holderType,
  32. 'holder_document' => $this->holderDocument,
  33. 'bank' => $this->bank,
  34. 'branch_number' => $this->branchNumber,
  35. 'branch_check_digit' => $this->branchCheckDigit,
  36. 'account_number' => $this->accountNumber,
  37. 'account_check_digit' => $this->accountCheckDigit,
  38. 'type' => $this->type,
  39. ],
  40. ]);
  41. }
  42. }