HEX
Server: nginx
System: Linux pool195-106-36.bur.atomicsites.net 6.12.57+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1~bpo12+1 (2025-11-17) x86_64
User: (0)
PHP: 8.3.32
Disabled: pcntl_fork
Upload Files
File: /wordpress/plugins/woocommerce-fraud-protection/0.1.5/src/FraudProtection/Schemas/ReportResult.php
<?php
/**
 * ReportResult enum file.
 */

declare( strict_types=1 );

namespace Automattic\WooCommerce\FraudProtection\Schemas;

defined( 'ABSPATH' ) || exit;

/**
 * Normalized payment-outcome results, the `result` vocabulary of a report context.
 *
 * Public surface: callers reference these when building a context via
 * `ReportContextData::from_array()`. Case names carry the event phase they belong to; `for_phase()`
 * returns the results valid for a given phase.
 */
enum ReportResult: string {

	// Payment results.
	case PaymentCaptured       = 'captured';
	case PaymentAuthorized     = 'authorized';
	case PaymentPending        = 'pending';
	case PaymentDeclined       = 'declined';
	case PaymentBlocked        = 'blocked';
	case PaymentReviewPending  = 'review_pending';
	case PaymentReviewApproved = 'review_approved';
	case PaymentReviewRejected = 'review_rejected';
	case PaymentReviewExpired  = 'review_expired';
	case PaymentVoided         = 'voided';
	case PaymentCanceled       = 'canceled';

	// Dispute results.
	case DisputeInquiry   = 'inquiry';
	case DisputeOpen      = 'open';
	case DisputeWon       = 'won';
	case DisputeLost      = 'lost';
	case DisputeAccepted  = 'accepted';
	case DisputeWithdrawn = 'withdrawn';
	case DisputePrevented = 'prevented';

	// Refund results.
	case Refunded          = 'refunded';
	case PartiallyRefunded = 'partially_refunded';

	/**
	 * The result cases valid for a given event phase.
	 *
	 * @param EventPhase $phase Event phase.
	 * @return array<int, self>
	 */
	public static function for_phase( EventPhase $phase ): array {
		return match ( $phase ) {
			EventPhase::Payment => array(
				self::PaymentCaptured,
				self::PaymentAuthorized,
				self::PaymentPending,
				self::PaymentDeclined,
				self::PaymentBlocked,
				self::PaymentReviewPending,
				self::PaymentReviewApproved,
				self::PaymentReviewRejected,
				self::PaymentReviewExpired,
				self::PaymentVoided,
				self::PaymentCanceled,
			),
			EventPhase::Dispute => array(
				self::DisputeInquiry,
				self::DisputeOpen,
				self::DisputeWon,
				self::DisputeLost,
				self::DisputeAccepted,
				self::DisputeWithdrawn,
				self::DisputePrevented,
			),
			EventPhase::Refund => array(
				self::Refunded,
				self::PartiallyRefunded,
			),
		};
	}
}