public function getRecent($ConversationID, $ViewingUserID, $Offset = '0', $Limit = '', $Wheres = '')
{
if ($Limit == '') {
$Limit = Gdn::config('Conversations.Messages.PerPage', 50);
}
$Offset = !is_numeric($Offset) || $Offset < 0 ? 0 : $Offset;
if (is_array($Wheres)) {
$this->SQL->where($Wheres);
}
$this->fireEvent('BeforeGet');
return $this->SQL->select('cm.*')->select('iu.Name', '', 'InsertName')->select('iu.Email', '', 'InsertEmail')->select('iu.Photo', '', 'InsertPhoto')->from('ConversationMessage cm')->join('Conversation c', 'cm.ConversationID = c.ConversationID')->join('UserConversation uc', 'c.ConversationID = uc.ConversationID and uc.UserID = ' . $ViewingUserID, 'left')->join('User iu', 'cm.InsertUserID = iu.UserID', 'left')->beginWhereGroup()->where('uc.DateCleared is null')->orWhere('uc.DateCleared <', 'cm.DateInserted', true, false)->endWhereGroup()->where('cm.ConversationID', $ConversationID)->orderBy('cm.DateInserted', 'asc')->limit($Limit, $Offset)->get();
}