/**
  * Move conversation
  *
  * @param int $conversation_id
  * @param string $label
  */
 public function moveToLabel($conversation_id, $label)
 {
     $users = new Users();
     $labels = new Labels();
     $available_labels = [Labels::TYPE_INBOX, Labels::TYPE_TRASH, Labels::TYPE_ARCHIVE];
     /**
      * Wrong label
      */
     if (in_array($label, $available_labels) === false) {
         return \Redirect::to('mail');
     }
     /**
      * Wrong conversation ID
      */
     if ($users->isUserInConversation(\Auth::user()->id, $conversation_id) === false) {
         return \Redirect::to('mail');
     }
     $label_id = $labels->getLabelByUserIdAndType(\Auth::user()->id, $label);
     if ($label_id === null) {
         $label_id = $labels->getUserInboxID(\Auth::user()->id);
     } else {
         $label_id = $label_id->label_id;
     }
     $users->updateLabelId($conversation_id, \Auth::user()->id, $label_id);
     return \Redirect::to('mail/l/' . $label);
 }
 /**
  * @param array $data
  */
 private function execute(array $data)
 {
     /**
      * User
      */
     foreach ($data as $user) {
         $profile = $user['profile'];
         $events = $user['events'];
         unset($user['profile'], $user['events']);
         $user_data = \Flocc\User::create($user);
         $user_id = $user_data->getId();
         /**
          * User profile
          */
         $profile['user_id'] = $user_id;
         \Flocc\Profile::create($profile);
         /**
          * User events
          */
         foreach ($events as $event) {
             $scoring = $event['scoring'];
             unset($event['scoring']);
             $event['user_id'] = $user_id;
             $event = \Flocc\Events\Events::create($event);
             /**
              * Event activities
              */
             \Flocc\Events\Activities::create(['event_id' => $event->getId(), 'activity_id' => rand(1, 3)]);
             /**
              * Event members
              */
             \Flocc\Events\Members::create(['event_id' => $event->getId(), 'user_id' => $user_id, 'status' => 'member']);
             /**
              * Add scoring
              */
             $scoring['event_id'] = $event->getId();
             \Flocc\Events\Scoring::create([$scoring]);
         }
         /**
          * Mail label
          */
         \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Skrzynka odbiorcza', 'type' => 'inbox']);
         \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Kosz', 'type' => 'trash']);
         \Flocc\Mail\Labels::create(['user_id' => $user_id, 'name' => 'Archiwum', 'type' => 'archive']);
     }
 }
 /**
  * New conversation
  *
  * @param NewMessage $message
  *
  * @return int
  */
 public function addNewConversation(\Flocc\Mail\NewMessage $message)
 {
     /**
      * mail_conversations
      */
     $conversation = new Conversations();
     $conversation->last_message_time = null;
     $conversation->save();
     /**
      * ID
      */
     $conversation_id = (int) \DB::getPdo()->lastInsertId();
     /**
      * User label
      */
     $labels = new Labels();
     /**
      * owner
      */
     $mail_users = new Users();
     $mail_users->conversation_id = $conversation_id;
     $mail_users->user_id = $message->getUserId();
     $mail_users->label_id = $labels->getUserInboxID($message->getUserId());
     $mail_users->is_owner = '1';
     $mail_users->save();
     /**
      * mail_users
      */
     foreach ($message->getUsers() as $user_id) {
         if ((int) $user_id != $message->getUserId()) {
             $mail_users = new Users();
             $mail_users->conversation_id = $conversation_id;
             $mail_users->user_id = (int) $user_id;
             $mail_users->label_id = $labels->getUserInboxID($user_id);
             $mail_users->unread_messages = 1;
             $mail_users->save();
         }
     }
     /**
      * mail_messages
      */
     $messages = new Messages();
     $messages->conversation_id = $conversation_id;
     $messages->user_id = $message->getUserId();
     $messages->message = $message->getMessage();
     $messages->save();
     return (int) $conversation_id;
 }