<?php
namespace App\EventSubscriber;
use App\Func;
use App\DTO\AppDTO;
use App\Service\Auth\Auth;
use App\Service\Cart\Cart;
use App\Event\OrderMakedEvent;
use App\Service\Sms\SmsFactory;
use App\Entity\Cart as EntityCart;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/** @package App\EventSubscriber */
class SendSMS implements EventSubscriberInterface
{
private Cart $Cart;
private Auth $Auth;
public function __construct(private AppDTO $app, Cart $Cart, Auth $Auth, Security $security)
{
$this->Cart = $Cart;
$this->Auth = $Auth;
$this->Auth->setUser($security->getUser());
}
public function onOrderMaked(OrderMakedEvent $event): void
{
$order = $event->getOrder();
SmsFactory::factory($this->app->sett->get('smsprovider'))
->send(
Func::mkphone($order->getPhone()),
'',
"Message! ".Func::mess_from_tmp($this->app->templates->get('order_maked_sms'),
['order_id' => $order->getId()])
);
}
public static function getSubscribedEvents(): array
{
return [
OrderMakedEvent::NAME => 'onOrderMaked',
];
}
}