MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/imenso.co/dev/gravity/app/Update.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use DB ;
class Update extends Model
{
    protected $fillable = [];

    public static function getProjectUpdates($filters)
    {
        $updates = Update::leftjoin('update_comments','updates.id','=','update_comments.update_id')
            ->join('projects','projects.id','=','updates.project_id')
            ->leftjoin('update_comment_mentions','update_comment_mentions.comment_id','=','update_comments.id')
            ->leftjoin('users as commenter_user','commenter_user.id','=','update_comments.commenter_id')
            ->leftjoin('users as updatter_user','updatter_user.id','=','updates.sender_id')
            ->select(
                'updates.id as update_id',
                'updates.update_text',
                'updates.updates_datetime',
                'updates.project_id',
                'update_comments.id as comment_id',
                'update_comments.comment',
                'update_comments.comments_datetime',
                'update_comments.commenter_id',
                "commenter_user.image as commenter_image",
                "commenter_user.name as commenter_name",
                "updatter_user.image as updatter_image",
                "updatter_user.name as updatter_name",
                "projects.project_name")
            ->orderBy('updates.last_comment_datetime','DESC') 
            ->orderBy('update_comments.comments_datetime','ASC') 
            ->groupBy('updates.id')
            ->groupBy('update_comments.id');

            if( isset($filters['projectId'] ))
            {
                $updates = $updates->where('updates.project_id',$filters['projectId'])  ;
            }
            if( isset($filters['mentionUserIds'] ))
            {
                $updates = $updates->whereIn('update_comment_mentions.mention_user_id',
                    $filters['mentionUserIds'] )  ;
            }
            if( isset($filters['notificationUnread'] ))
            {
                $updates = $updates->addSelect("update_comment_mentions.id as update_comment_mentions_id")->where('update_comment_mentions.status_id',
                    $filters['notificationUnread'] )  ;
            }
            $updates = $updates->get();
            return $updates;
    }
}