<?php

namespace Sibs\Stargate\Constants;

defined('ABSPATH') || exit;

class WoocommerceOrderStatus implements ConstantsInterface
{
    public const WOO_PREFIX = 'wc-';

    // WOOCOMMERCE ORDER STATUS CONSTANTS
    public const PENDING = self::WOO_PREFIX.OrderStatus::PENDING;
    public const PROCESSING = self::WOO_PREFIX.OrderStatus::PROCESSING;
    public const ON_HOLD = self::WOO_PREFIX.OrderStatus::ON_HOLD;
    public const COMPLETED = self::WOO_PREFIX.OrderStatus::COMPLETED;
    public const CANCELLED = self::WOO_PREFIX.OrderStatus::CANCELLED;
    public const REFUNDED = self::WOO_PREFIX.OrderStatus::REFUNDED;
    public const FAILED = self::WOO_PREFIX.OrderStatus::FAILED;

    // SIBS ORDER STATUS CONSTANTS
    public const PARTIALLY_CAPTURED = self::WOO_PREFIX.OrderStatus::PARTIALLY_CAPTURED;
    public const PARTIALLY_REFUNDED = self::WOO_PREFIX.OrderStatus::PARTIALLY_REFUNDED;
    public const AUTHORIZED = self::WOO_PREFIX.OrderStatus::AUTHORIZED;
    public const PENDING_REFUND = self::WOO_PREFIX.OrderStatus::PENDING_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;
    }
}
