| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Data\Pagarme\Request\PagarmeCustomerRequestData;
- use App\Data\Pagarme\PagarmeData;
- final readonly class PagarmeCustomerAddressRequestData extends PagarmeData
- {
- public function __construct(
- public ?string $line1,
- public ?string $line2,
- public ?string $zipCode,
- public ?string $city,
- public ?string $state,
- public ?string $country,
- ) {}
- public static function fromPayload(array $data): self
- {
- $line1Parts = array_filter([
- (string) ($data['number'] ?? '0'),
- (string) ($data['address'] ?? ''),
- (string) ($data['district'] ?? ''),
- ], static fn ($value) => $value !== '');
- return new self(
- line1: implode(', ', $line1Parts),
- line2: (string) ($data['complement'] ?? $data['instructions'] ?? ''),
- zipCode: self::digits($data['zip_code'] ?? null),
- city: (string) ($data['city'] ?? ''),
- state: (string) ($data['state'] ?? ''),
- country: (string) ($data['country'] ?? 'BR'),
- );
- }
- public function toArray(): array
- {
- return $this->filterFilledRecursive([
- 'line_1' => $this->line1,
- 'line_2' => $this->line2,
- 'zip_code' => $this->zipCode,
- 'city' => $this->city,
- 'state' => $this->state,
- 'country' => $this->country,
- ]);
- }
- }
|