PagarmeCustomerPhonesRequestData.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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 $mobilePhone = null,
  8. ) {}
  9. public static function fromPhone(?string $phone): self
  10. {
  11. $digits = self::digits($phone);
  12. if ($digits === '') {
  13. return new self;
  14. }
  15. $areaCode = substr($digits, 0, 2);
  16. $number = substr($digits, 2);
  17. if (strlen($digits) <= 2) {
  18. $areaCode = '';
  19. $number = $digits;
  20. }
  21. return new self(
  22. mobilePhone: new PagarmeCustomerPhoneData(
  23. countryCode: '55',
  24. areaCode: $areaCode,
  25. number: $number,
  26. ),
  27. );
  28. }
  29. public function toArray(): array
  30. {
  31. return $this->filterFilledRecursive([
  32. 'mobile_phone' => $this->mobilePhone,
  33. ]);
  34. }
  35. }