<?php
namespace TbiBank\FusionPay\Model\Config\Source;

use Magento\Framework\Option\ArrayInterface;
use Magento\Sales\Model\ResourceModel\Order\Status\Collection as StatusCollection;

/**
 * Provides a list of order statuses as options for a configuration setting.
 */
class OrderStatus implements ArrayInterface
{
    /**
     * @var StatusCollection Holds the collection of order statuses.
     */
    protected $statusCollection;

    /**
     * Constructor
     * 
     * @param StatusCollection $statusCollection Injected order status collection to provide the options.
     */
    public function __construct(StatusCollection $statusCollection)
    {
        $this->statusCollection = $statusCollection;
    }

    /**
     * Returns the option array for order statuses.
     * 
     * @return array List of order statuses with value and label.
     */
    public function toOptionArray()
    {
        // Retrieve order statuses as an option array.
        $statuses = $this->statusCollection->toOptionArray();

        // Add a default 'Please Select' option at the beginning.
        array_unshift($statuses, ['value' => '', 'label' => __('-- Please Select --')]);

        return $statuses;
    }
}
