<?

namespace Shop\Services;

use Diamond\Application\Notification\NotificationService;
use Diamond\Services\Report\Message;
use SmsSender\Exceptions\SmsException;

/**
 * Description of Sms
 * @deprecated
 * @author Admin
 */
class Sms extends NotificationService
{

//    protected $smsConf;
//
//    protected $smsLogRepo;
//
//    function __construct(\Shop\Config\Sms $smsConf, \Shop\Repositories\SmsLog $smsLogRepo)
//    {
//        $this->confSms = $smsConf;
//        $this->smsLogRepo = $smsLogRepo;
//    }
//
//    /**
//     *
//     * @return \SmsSender\Sender
//     */
//    private function build()
//    {
//        $config = new \SmsSender\Drivers\Smsc\Config;
//        $config
//                ->setLogin($this->confSms->getLogin())
//                ->setPassword($this->confSms->getPassword())
//                ->setFrom($this->confSms->getFrom())
//        ;
//
//        return new \SmsSender\Sender(new \SmsSender\Drivers\Smsc\Smsc($config));
//    }
//
//    /**
//     * @param $phone
//     * @param Message $message
//     * @return int
//     * @throws \Propel\Runtime\Exception\PropelException
//     */
//    public function sendSms($phone, Message $message): int
//    {
//
//        if ($this->confSms->getDebug() == "sendToSmsDISSABLED") {
//            return 0;
//        }
//
//        if ($this->confSms->getDebug() == "DEBUG_PHONE" && $this->confSms->getDebugPhone() > "") {
//            $phone = $this->confSms->getDebugPhone();
//        } elseif ($this->confSms->getDebug() == "DEBUG_PHONE") {
//            throw new \Shop\Exceptions\NotifySendError("Номер для отладки смс сообщений не задан.");
//        }
//
//        if ($this->confSms->getDebug() == "DEBUG_DISPLAY") {
//            throw new \Shop\Exceptions\NotifySend('Отправка смс на номер ' . $phone . ' Текст: ' . $message->getContent());
//        }
//
//        if ( ! $this->confSms->getLogin() || ! $this->confSms->getPassword()) {
//            throw new \Shop\Exceptions\NotifySendError("Логин или пароль от сервиса смс сообщений не заданны.");
//        }
//
//
//
//        try {
//
//            $smsSender = $this->build();
//
//            $result = $smsSender->send($phone, $message->getContent());
//
//            $this->smsLogRepo
//                    ->buildEntity()
//                    ->setPhone($phone)
//                    ->setStatus($result->getMessage())
//                    ->setContent($message->getContent())
//                    ->save()
//            ;
//        }
//        catch (SmsException $ex) {
//
//            $this->smsLogRepo
//                    ->buildEntity()
//                    ->setPhone($phone)
//                    ->setStatus($ex->getMessage())
//                    ->setContent($message->getContent())
//                    ->save();
//
//            throw new \Shop\Exceptions\NotifySendError("При отправке возникла непредвиденная ошибка: " . $ex->getMessage());
//        }
//
//        return $result->getId();
//    }
//
//    /**
//     * Получение баланса
//     * @return int
//     */
//    public function getBalance():int
//    {
//
//        if ($this->confSms->getDebug() == "sendToSmsDISSABLED") {
//            return 0;
//        }
//
//        $smsSender = $this->build();
//
//
//        return $smsSender->getBalance();
//    }

}