from( Echomail::Uncollected() ->select([ 'addresses.id', 'zone_id', 'host_id', 'node_id', 'point_id', 'system_id', DB::raw('count(addresses.id) as uncollected_echomail'), DB::raw('0 as uncollected_netmail'), DB::raw('0 as uncollected_files'), ]) ->join('addresses',['addresses.id'=>'echomail_seenby.address_id']) ->where('echomails.created_at','<',$asat) ->groupBy('addresses.id') ->union(Netmail::Uncollected() ->select([ 'addresses.id', 'zone_id', 'host_id', 'node_id', 'point_id', 'system_id', DB::raw('0 as uncollected_echomail'), DB::raw('count(addresses.id) as uncollected_netmail'), DB::raw('0 as uncollected_files') ]) ->join('addresses',['addresses.id'=>'netmails.tftn_id']) ->where('netmails.created_at','<',$asat) ->groupBy('addresses.id') ) ->union(File::Uncollected() ->select([ 'addresses.id', 'zone_id', 'host_id', 'node_id', 'point_id', 'system_id', DB::raw('0 as uncollected_echomail'), DB::raw('0 as uncollected_netmail'), DB::raw('count(addresses.id) as uncollected_files') ]) ->join('addresses',['addresses.id'=>'file_seenby.address_id']) ->where('files.created_at','<',$asat) ->groupBy('addresses.id') ),'a') ->where('systems.active',TRUE) ->where('addresses.active',TRUE) ->where('zones.active',TRUE) ->where('domains.active',TRUE) ->when(! ($x=Auth::user()) || (! $x->isAdmin()),fn($query)=>$query->where('domains.public',TRUE)) ->join('addresses',['addresses.id'=>'a.id']) ->join('systems',['systems.id'=>'a.system_id']) ->join('zones',['zones.id'=>'addresses.zone_id']) ->join('domains',['domains.id'=>'zones.domain_id']) ->ftnOrder() ->groupBy('a.system_id','a.id','a.zone_id','addresses.region_id','a.host_id','a.node_id','a.point_id','addresses.hub_id','addresses.role') ->with(['system','zone.domain']); } }