<?php

namespace Modules\Payment\Data;

use Modules\Payment\Enums\PaymentStatus;

/**
 * What a gateway hands back from initiate()/verify() (PaymentGatewayInterface).
 */
readonly class PaymentResultData
{
    /**
     * @param  array<string, mixed>  $gatewayPayload  Raw gateway response, persisted verbatim for audit.
     */
    public function __construct(
        public PaymentStatus $status,
        public ?string $gatewayTransactionId,
        public array $gatewayPayload,
        public ?string $message = null,
    ) {}
}
