Optimize the SQL queries that finds unsent echomail,netmail and files
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Collection;
|
||||
@@ -279,6 +280,33 @@ final class Echomail extends Model implements Packet
|
||||
});
|
||||
}
|
||||
|
||||
/* SCOPES */
|
||||
|
||||
/**
|
||||
* Base query to find uncollected echomails
|
||||
*
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function scopeUncollected(Builder $query): Builder
|
||||
{
|
||||
return $this
|
||||
->join('echomail_seenby',['echomail_seenby.echomail_id'=>'echomails.id'])
|
||||
->whereNull('echomails.deleted_at')
|
||||
->whereNotNull('export_at')
|
||||
->whereNull('sent_at')
|
||||
->with([
|
||||
'tagline:id,value',
|
||||
'tearline:id,value',
|
||||
'origin:id,value',
|
||||
'echoarea:id,name,domain_id',
|
||||
'echoarea.domain:id,name',
|
||||
'fftn:id,zone_id,region_id,host_id,node_id,point_id',
|
||||
'fftn.zone:id,domain_id,zone_id',
|
||||
'fftn.zone.domain:id,name',
|
||||
]);
|
||||
}
|
||||
|
||||
/* RELATIONS */
|
||||
|
||||
public function echoarea()
|
||||
|
Reference in New Issue
Block a user