<?php

namespace Booktics\Payment;

/**
 * Class representing various payment statuses.
 *
 * This class defines constants for different stages of payment processing,
 * providing a structured way to handle payment state within the application.
 */
final class Payment_Status {

	public const PENDING      	= 'pending';
	public const PROCESSING 	= 'processing';
	public const COMPLETED  	= 'fully_paid';
	public const FAILED     	= 'not_paid';
	public const CANCELLED  	= 'cancelled';
	public const REFUNDED   	= 'refunded';
	public const PARTIALLY_PAID = 'partially_paid';

	/**
	 * Get all payment statuses.
	 *
	 * @return array
	 */
	public static function get_statuses(): array {
		$reflection = new \ReflectionClass( self::class );

		return $reflection->getConstants();
	}
}
