Exemplo n.º 1
0
 /**
  * @param CM $customer свежезарегистрированный пользователь
  *
  * @return null|\Symfony\Component\HttpFoundation\Cookie
  */
 public function registerInvite(CM $customer)
 {
     // уже осуществлялся вход ранее, не обрабатываем
     if (!$customer->isEmptyAuthAt()) {
         return false;
     }
     // при регистрации должен был сохраниться телефон, если был инвайт, проверим
     $external = CustomerInviteExternal::wherePhone($customer->phone)->first();
     if (!$external || empty($external->owner_id)) {
         return false;
     }
     // нельзя приглашать самого себя
     if ($external->owner_id == $customer->id) {
         return false;
     }
     Reporter::inviteCodeFound($customer->id, $external->owner_id);
     $invite = CustomerInvite::create(['customer_id' => $customer->id, 'owner_id' => $external->owner_id, 'source_id' => $external->source_id, 'customer_invite_external_id' => $external->id]);
     Reporter::inviteCodeRegistered($customer->id, $external->owner_id, $invite->id);
     return true;
 }