AddressData.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace App\Data\Pagarme\Recipient\Parts\Request;
  3. use App\Data\Pagarme\PagarmeData;
  4. final readonly class AddressData extends PagarmeData
  5. {
  6. public function __construct(
  7. public string $street,
  8. public string $complementary,
  9. public string $streetNumber,
  10. public string $neighborhood,
  11. public ?string $city,
  12. public ?string $state,
  13. public string $zipCode,
  14. public string $referencePoint,
  15. ) {
  16. self::requireFilled($this->street, 'register_information.address.street');
  17. self::requireFilled($this->streetNumber, 'register_information.address.street_number');
  18. self::requireFilled($this->neighborhood, 'register_information.address.neighborhood');
  19. self::requireFilled($this->city, 'register_information.address.city');
  20. self::requireFilled($this->state, 'register_information.address.state');
  21. self::requireFilled($this->zipCode, 'register_information.address.zip_code');
  22. }
  23. public function toArray(): array
  24. {
  25. return $this->filterFilledRecursive([
  26. 'street' => $this->street,
  27. 'complementary' => $this->complementary,
  28. 'street_number' => $this->streetNumber,
  29. 'neighborhood' => $this->neighborhood,
  30. 'city' => $this->city,
  31. 'state' => $this->state,
  32. 'zip_code' => $this->zipCode,
  33. 'reference_point' => $this->referencePoint,
  34. ]);
  35. }
  36. }