src/Subscriber/User/AmateurUpgrade/ConversationMessageSubscriber.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Subscriber\User\AmateurUpgrade;
  3. use App\Dictionary\ConversationMessageSource;
  4. use App\Dictionary\ConversationMessageType;
  5. use App\Entity\Member;
  6. use App\Event\User\AmateurUpgradeCompleteEvent;
  7. use App\Service\MemberService;
  8. use App\Service\Messenger\MessengerService;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class ConversationMessageSubscriber implements EventSubscriberInterface
  11. {
  12.     /**
  13.      * @var MessengerService
  14.      */
  15.     protected $messenger;
  16.     /**
  17.      * @var MemberService
  18.      */
  19.     protected $memberService;
  20.     /**
  21.      * ConversationMessageSubscriber constructor.
  22.      */
  23.     public function __construct(MemberService $memberServiceMessengerService $messenger)
  24.     {
  25.         $this->memberService $memberService;
  26.         $this->messenger $messenger;
  27.     }
  28.     public static function getSubscribedEvents(): array
  29.     {
  30.         return [
  31.             AmateurUpgradeCompleteEvent::class => [
  32.                 ['sendWelcomeMessageAfterSuccessfulUpgrade'2],
  33.                 ['sendRejectMessageAfterRejectedUpgrade'3],
  34.             ],
  35.         ];
  36.     }
  37.     /**
  38.      * @throws \Doctrine\ORM\ORMException
  39.      * @throws \Doctrine\ORM\OptimisticLockException
  40.      */
  41.     public function sendWelcomeMessageAfterSuccessfulUpgrade(AmateurUpgradeCompleteEvent $event)
  42.     {
  43.         if ($event->isRejected()) {
  44.             return;
  45.         }
  46.         /**
  47.          * @var $member Member
  48.          */
  49.         $member $event->getAmateurUpgrade()->getAccount()->getMember();
  50.         if ($support $this->memberService->getSupportMember()) {
  51.             $welcome sprintf($this->getWelcomeMessageFormat(), $member->getUsername());
  52.             $type ConversationMessageType::TEXT;
  53.             $source ConversationMessageSource::SYSTEM;
  54.             $this->messenger->sendDirectMessage($support$member$welcome$type$source);
  55.         }
  56.     }
  57.     /**
  58.      * @throws \Doctrine\ORM\ORMException
  59.      * @throws \Doctrine\ORM\OptimisticLockException
  60.      */
  61.     public function sendRejectMessageAfterRejectedUpgrade(AmateurUpgradeCompleteEvent $event)
  62.     {
  63.         if (!$event->isRejected()) {
  64.             return;
  65.         }
  66.         $upgrade $event->getAmateurUpgrade();
  67.         $member $upgrade->getAccount()->getMember();
  68.         $support $this->memberService->getSupportMember();
  69.         $rejectMsg sprintf($this->getRejectMessageFormat(), $member->getUsername(), $upgrade->getComment());
  70.         $type ConversationMessageType::TEXT;
  71.         $source ConversationMessageSource::SYSTEM;
  72.         $this->messenger->sendDirectMessage($support$member$rejectMsg$type$source);
  73.     }
  74.     protected function getRejectMessageFormat(): string
  75.     {
  76.         return 'Hallo %s, wir mussten deinen Amateur-Antrag leider ablehnen. Grund: %s';
  77.     }
  78.     protected function getWelcomeMessageFormat(): string
  79.     {
  80.         return "Hallo %s,\nwir freuen uns, dich als neuen Amateur begrüßen zu können. Unsere Community ".
  81.             "bietet dir vielfältige Möglichkeiten mit deiner Freizügigkeit gute Provisionen zu verdienen!\n\n".
  82.             "Um dir den Start zu erleichtern, haben wir einige Hinweise für dich:\n".
  83.             "1. Bitte fülle dein Profil vollständig aus und lade interessante Bilder von dir hoch. Leere Profile wirken
  84.              uninteressant und mindern deinen Verdienst!\n".
  85.             "2. Eine Community lebt von der Aktivität der Mitglieder! Bitte beantworte Nachrichten von Mitgliedern 
  86.             möglichst schnell! Mit dem Schreiben von Nachrichten kannst du sehr gutes Geld verdienen. Im Idealfall 
  87.             nutzt du unser Marketing Tool und schreibst User aktiv an!\n".
  88.             "3. Lade mit unserem Uploader Videos und/oder Bildersets hoch. Dein Content es bares Geld wert!\n".
  89.             "4. Nutze unsere Livecam-Software für eine weitere Steigerung deiner Provisionen!\n\n".
  90.             "Wir helfen dir in allen Angelegenheiten gerne weiter. Bitte melde dich, wenn du Fragen hast oder 
  91.             Hilfe benötigst.\n\n".
  92.             "Wichtig: Du musst dich einmal komplett aus- und wieder einloggen.\n\n".
  93.             "Auf eine gute Zusammenarbeit!\n\n".
  94.             'Viel Erfolg - dein Frivol.com Team';
  95.     }
  96. }