ekart/backend/app/Data/Stripe/StripeSessionDataDTO.php
2026-03-25 17:17:35 +05:30

33 lines
819 B
PHP

<?php
namespace App\Data\Stripe;
use App\Contracts\OutputDataTransferObject;
use App\Enums\Stripe\StripePaymentMode;
final readonly class StripeSessionDataDTO implements OutputDataTransferObject
{
/**
* @param StripeLineItemDTO[] $lineItems
*/
public function __construct(
public array $lineItems,
public StripePaymentMode $mode,
public string $successUrl,
public string $cancelUrl
) {}
/**
* @return array<string, mixed>
*/
public function toArray(): array
{
return [
'line_items' => array_map(fn (StripeLineItemDTO $dto) => $dto->toArray(), $this->lineItems),
'mode' => $this->mode->value,
'success_url' => $this->successUrl,
'cancel_url' => $this->cancelUrl,
];
}
}