| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Data\Pagarme\Response\PagarmeOrderResponseData\PagarmeOrderChargeResponseData;
- final readonly class PagarmeOrderChargeResponseData
- {
- public function __construct(
- public ?string $id,
- public ?string $status,
- public ?int $amount,
- public ?string $currency,
- public ?string $paidAt,
- public ?string $createdAt,
- public ?PagarmeOrderTransactionResponseData $lastTransaction,
- ) {}
- public function transaction(): ?PagarmeOrderTransactionResponseData
- {
- return $this->lastTransaction;
- }
- public static function fromArray(array $payload): self
- {
- return new self(
- id: $payload['id'] ?? null,
- status: $payload['status'] ?? null,
- amount: isset($payload['amount']) ? (int) $payload['amount'] : null,
- currency: $payload['currency'] ?? null,
- paidAt: $payload['paid_at'] ?? null,
- createdAt: $payload['created_at'] ?? null,
- lastTransaction: ! empty($payload['last_transaction'])
- ? PagarmeOrderTransactionResponseData::fromArray($payload['last_transaction'])
- : null,
- );
- }
- public function toArray(): array
- {
- return array_filter([
- 'id' => $this->id,
- 'status' => $this->status,
- 'amount' => $this->amount,
- 'currency' => $this->currency,
- 'paid_at' => $this->paidAt,
- 'created_at' => $this->createdAt,
- 'last_transaction' => $this->lastTransaction?->toArray(),
- ], static fn ($v) => $v !== null);
- }
- }
|