<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Dhl\Model\Source\Method;

/**
 * Source model for DHL shipping methods
 */
abstract class AbstractMethod extends \Magento\Dhl\Model\Source\Method\Generic
{
    /**
     * Carrier Product Type Indicator
     *
     * @var string $_contentType
     */
    protected $_contentType;

    /**
     * Show 'none' in methods list or not;
     *
     * @var bool
     */
    protected $_noneMethod = false;

    /**
     * {@inheritdoc}
     */
    public function toOptionArray()
    {
        /* @var $carrierModel \Magento\Dhl\Model\Carrier */
        $carrierModel = $this->_shippingDhl;
        $dhlProducts = $carrierModel->getDhlProducts($this->_contentType);

        $options = [];
        foreach ($dhlProducts as $code => $title) {
            $options[] = ['value' => $code, 'label' => $title];
        }

        if ($this->_noneMethod) {
            array_unshift($options, ['value' => '', 'label' => __('None')]);
        }

        return $options;
    }
}
