PagarmeCustomerPhonesResponseData.php 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Data\Pagarme\Response\PagarmeCustomerResponseData\PagarmeCustomerPhonesResponseData;
  3. use App\Data\Pagarme\PagarmeResponseData;
  4. final readonly class PagarmeCustomerPhonesResponseData extends PagarmeResponseData
  5. {
  6. public function __construct(
  7. public ?PagarmePhoneResponseData $homePhone,
  8. public ?PagarmePhoneResponseData $mobilePhone,
  9. ) {}
  10. public static function fromArray(array $payload): static
  11. {
  12. $home = static::arrArray($payload, 'home_phone');
  13. $mobile = static::arrArray($payload, 'mobile_phone');
  14. return new self(
  15. homePhone: ! empty($home) ? PagarmePhoneResponseData::fromArray($home) : null,
  16. mobilePhone: ! empty($mobile) ? PagarmePhoneResponseData::fromArray($mobile) : null,
  17. );
  18. }
  19. public function toArray(): array
  20. {
  21. return array_filter([
  22. 'home_phone' => $this->homePhone?->toArray(),
  23. 'mobile_phone' => $this->mobilePhone?->toArray(),
  24. ]);
  25. }
  26. }