| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace App\Data\Pagarme\Response;
- use App\Data\Pagarme\Response\Objects\PagarmeArrayListData;
- use App\Data\Pagarme\Response\Objects\PagarmeArrayObjectData;
- readonly class PagarmeOrderResponseData
- {
- public function __construct(
- public ?string $id,
- public ?string $code,
- public ?int $amount,
- public ?string $currency,
- public ?bool $closed,
- public ?string $status,
- public PagarmeArrayListData $items,
- public ?PagarmeArrayObjectData $customer,
- public PagarmeArrayListData $charges,
- public PagarmeArrayListData $checkouts,
- public PagarmeArrayObjectData $metadata,
- public ?string $createdAt = null,
- public ?string $updatedAt = null,
- public ?string $closedAt = null,
- ) {}
- public static function fromArray(array $payload): self
- {
- return new self(
- id: $payload['id'] ?? null,
- code: $payload['code'] ?? null,
- amount: isset($payload['amount']) ? (int) $payload['amount'] : null,
- currency: $payload['currency'] ?? null,
- closed: $payload['closed'] ?? null,
- status: $payload['status'] ?? null,
- items: PagarmeArrayListData::fromArray($payload['items'] ?? []),
- customer: ! empty($payload['customer']) ? PagarmeArrayObjectData::fromArray($payload['customer']) : null,
- charges: PagarmeArrayListData::fromArray($payload['charges'] ?? []),
- checkouts: PagarmeArrayListData::fromArray($payload['checkouts'] ?? []),
- metadata: PagarmeArrayObjectData::fromArray($payload['metadata'] ?? []),
- createdAt: $payload['created_at'] ?? null,
- updatedAt: $payload['updated_at'] ?? null,
- closedAt: $payload['closed_at'] ?? null,
- );
- }
- public function id(): ?string
- {
- return $this->id;
- }
- public function toArray(): array
- {
- return [
- 'id' => $this->id,
- 'code' => $this->code,
- 'amount' => $this->amount,
- 'currency' => $this->currency,
- 'closed' => $this->closed,
- 'items' => $this->items->toArray(),
- 'customer' => $this->customer?->toArray(),
- 'status' => $this->status,
- 'created_at' => $this->createdAt,
- 'updated_at' => $this->updatedAt,
- 'closed_at' => $this->closedAt,
- 'charges' => $this->charges->toArray(),
- 'checkouts' => $this->checkouts->toArray(),
- 'metadata' => $this->metadata->toArray(),
- ];
- }
- }
|