PagarmeOrderRequestData.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Data\Pagarme\Request\PagarmeOrderRequestData;
  3. use App\Data\Pagarme\PagarmeData;
  4. /**
  5. * @param array<int, array{code?: string, amount?: int, quantity?: int, description?: string, ...}> $items Lista de itens do pedido
  6. * @param array<int, array{payment_method: string, ...}> $payments Lista de formas de pagamento
  7. * @param array<string, mixed> $metadata Metadados do pedido (ex: payment_id, schedule_id, client_id, provider_id)
  8. * @param array<string, mixed>|null $customer Dados do cliente (name, email, document, type, etc.)
  9. */
  10. readonly class PagarmeOrderRequestData extends PagarmeData
  11. {
  12. public function __construct(
  13. public string $code,
  14. public array $items,
  15. public array $payments,
  16. public array $metadata,
  17. public ?array $customer = null,
  18. public ?string $customerId = null,
  19. public bool $closed = true,
  20. public ?string $channel = null,
  21. ) {}
  22. public function toArray(): array
  23. {
  24. return $this->filterFilledRecursive([
  25. 'code' => $this->code,
  26. 'items' => $this->items,
  27. 'payments' => $this->payments,
  28. 'closed' => $this->closed,
  29. 'metadata' => $this->metadata,
  30. 'customer_id' => $this->customerId,
  31. 'customer' => $this->customer,
  32. 'channel' => $this->channel,
  33. ]);
  34. }
  35. }