PagarmeOrderChargeResponseData.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Data\Pagarme\Response\PagarmeOrderResponseData\PagarmeOrderChargeResponseData;
  3. final readonly class PagarmeOrderChargeResponseData
  4. {
  5. public function __construct(
  6. public ?string $id,
  7. public ?string $status,
  8. public ?int $amount,
  9. public ?string $currency,
  10. public ?string $paidAt,
  11. public ?string $createdAt,
  12. public ?PagarmeOrderTransactionResponseData $lastTransaction,
  13. ) {}
  14. public function transaction(): ?PagarmeOrderTransactionResponseData
  15. {
  16. return $this->lastTransaction;
  17. }
  18. public function toArray(): array
  19. {
  20. return array_filter([
  21. 'id' => $this->id,
  22. 'status' => $this->status,
  23. 'amount' => $this->amount,
  24. 'currency' => $this->currency,
  25. 'paid_at' => $this->paidAt,
  26. 'created_at' => $this->createdAt,
  27. 'last_transaction' => $this->lastTransaction?->toArray(),
  28. ], static fn ($v) => $v !== null);
  29. }
  30. }