PagarmeRecipientResponseData.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace App\Data\Pagarme\Response;
  3. use App\Data\Pagarme\Response\Objects\PagarmeRecipientBankAccountResponseData;
  4. readonly class PagarmeRecipientResponseData
  5. {
  6. public function __construct(
  7. public ?string $id,
  8. public ?string $name,
  9. public ?string $email,
  10. public ?string $document,
  11. public ?string $type,
  12. public ?string $status,
  13. public ?PagarmeRecipientBankAccountResponseData $defaultBankAccount = null,
  14. public ?string $createdAt = null,
  15. public ?string $updatedAt = null,
  16. ) {}
  17. public static function fromArray(array $payload): self
  18. {
  19. return new self(
  20. id: $payload['id'] ?? null,
  21. name: $payload['name'] ?? null,
  22. email: $payload['email'] ?? null,
  23. document: $payload['document'] ?? null,
  24. type: $payload['type'] ?? null,
  25. status: $payload['status'] ?? null,
  26. defaultBankAccount: ! empty($payload['default_bank_account'])
  27. ? PagarmeRecipientBankAccountResponseData::fromArray($payload['default_bank_account'])
  28. : null,
  29. createdAt: $payload['created_at'] ?? null,
  30. updatedAt: $payload['updated_at'] ?? null,
  31. );
  32. }
  33. public function id(): ?string
  34. {
  35. return $this->id;
  36. }
  37. public function defaultBankAccount(): ?PagarmeRecipientBankAccountResponseData
  38. {
  39. return $this->defaultBankAccount;
  40. }
  41. public function toArray(): array
  42. {
  43. return [
  44. 'id' => $this->id,
  45. 'name' => $this->name,
  46. 'email' => $this->email,
  47. 'document' => $this->document,
  48. 'type' => $this->type,
  49. 'status' => $this->status,
  50. 'default_bank_account' => $this->defaultBankAccount?->toArray(),
  51. 'created_at' => $this->createdAt,
  52. 'updated_at' => $this->updatedAt,
  53. ];
  54. }
  55. }