PagarmeCustomerPhonesRequestData.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData\PagarmeCustomerPhonesRequestData;
  3. use App\Data\Pagarme\PagarmeData;
  4. final readonly class PagarmeCustomerPhonesRequestData extends PagarmeData
  5. {
  6. public function __construct(
  7. public ?PagarmeCustomerPhoneData $homePhone = null,
  8. public ?PagarmeCustomerPhoneData $mobilePhone = null,
  9. ) {}
  10. public static function fromPhone(?string $phone): self
  11. {
  12. $digits = self::digits($phone);
  13. if ($digits === '') {
  14. return new self;
  15. }
  16. $areaCode = substr($digits, 0, 2);
  17. $number = substr($digits, 2);
  18. if (strlen($digits) <= 2) {
  19. $areaCode = '';
  20. $number = $digits;
  21. }
  22. return new self(
  23. mobilePhone: new PagarmeCustomerPhoneData(
  24. countryCode: '55',
  25. areaCode: $areaCode,
  26. number: $number,
  27. ),
  28. );
  29. }
  30. public function toArray(): array
  31. {
  32. return $this->filterFilledRecursive([
  33. 'home_phone' => $this->homePhone,
  34. 'mobile_phone' => $this->mobilePhone,
  35. ]);
  36. }
  37. }