<?php

namespace FiloBlu\Esb\Core\Exception;

use Magento\Framework\Phrase;
use Magento\Framework\Webapi\Exception as WebapiException;

/**
 * Sollevata quando non si riesce a ottenere il lock di scrittura su un ordine.
 *
 * Estende Webapi\Exception per rispondere al chiamante con 503 invece del 400 di default:
 * non e' un errore della richiesta, e' una condizione temporanea e la chiamata VA RITENTATA.
 * Un 400 verrebbe interpretato dall'ERP come errore permanente e il documento andrebbe perso.
 *
 * @package FiloBlu\Esb\Core\Exception
 */
class OrderLockedException extends WebapiException
{
    /** @var int Webapi\Exception accetta qualunque codice 400-599, ma non ha la costante per il 503 */
    const HTTP_SERVICE_UNAVAILABLE = 503;

    /**
     * @param Phrase $phrase
     */
    public function __construct(Phrase $phrase)
    {
        parent::__construct($phrase, 0, self::HTTP_SERVICE_UNAVAILABLE);
    }
}
