<?php

namespace Sibs\Stargate\Constants;

defined('ABSPATH') || exit;

class OrderStatus implements ConstantsInterface
{
    // WOOCOMMERCE ORDER STATUS CONSTANTS
    public const PENDING = 'pending';
    public const PROCESSING = 'processing';
    public const ON_HOLD = 'on-hold';
    public const COMPLETED = 'completed';
    public const CANCELLED = 'cancelled';
    public const REFUNDED = 'refunded';
    public const FAILED = 'failed';

    // SIBS ORDER STATUS CONSTANTS
    public const PARTIALLY_CAPTURED = 'part-captured';
    public const PARTIALLY_REFUNDED = 'part-refunded';
    public const AUTHORIZED = 'authorized';
    public const PENDING_REFUND = 'pend-refund';

    /**
     * All.
     */
    public static function all(): array
    {
        return [
            self::PENDING,
            self::PROCESSING,
            self::ON_HOLD,
            self::COMPLETED,
            self::CANCELLED,
            self::REFUNDED,
            self::FAILED,
            self::PARTIALLY_CAPTURED,
            self::PARTIALLY_REFUNDED,
            self::AUTHORIZED,
            self::PENDING_REFUND,
        ];
    }

    /**
     * Default.
     */
    public static function default(): mixed
    {
        return self::PENDING;
    }
}
