Advertisement
Guest User

Untitled

a guest
May 8th, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.40 KB | None | 0 0
  1. class Flow extends Model
  2. {
  3.     protected $table = 'flow';
  4.     protected $fillable = [
  5.         'title',
  6.         'subject',
  7.         'preview_text',
  8.         'message',
  9.         'template_id',
  10.         'project_id',
  11.         'sender_id'
  12.     ];
  13.  
  14.     public function getFlowsByProject($id = false)
  15.     {
  16.         if (!$id)
  17.             $id = request()->get('project');
  18.  
  19.         return $this
  20.             ->where('project_id', $id)
  21.             ->with('template')
  22.             ->with('sender')
  23.             ->withCount([
  24.                 'messages',
  25.                 'messagesDelivered',
  26.                 'messagesOpened',
  27.                 'messagesClicked',
  28.                 'messagesSpam',
  29.                 'messagesTemporaryFailed',
  30.                 'messagesPermanentlyFailed',
  31.             ])
  32.             ->latest()
  33.             ->paginate(5);
  34.     }
  35.  
  36. /**
  37.      *
  38.      * Relations
  39.      *
  40.      **/
  41.  
  42.     public function messages()
  43.     {
  44.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  45.             ->where('type', 'flow')->filteredByDateRange();
  46.     }
  47.  
  48.     public function messagesDelivered()
  49.     {
  50.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  51.             ->where('type', 'flow')
  52.             ->where('delivered', 1)->filteredByDateRange();
  53.     }
  54.  
  55.     public function messagesOpened()
  56.     {
  57.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  58.             ->where('type', 'flow')
  59.             ->where('opened', 1)->filteredByDateRange();
  60.     }
  61.  
  62.     public function messagesClicked()
  63.     {
  64.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  65.             ->where('type', 'flow')
  66.             ->where('clicked', 1)->filteredByDateRange();
  67.     }
  68.  
  69.     public function messagesSpam()
  70.     {
  71.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  72.             ->where('type', 'flow')
  73.             ->where('spam', 1)->filteredByDateRange();
  74.     }
  75.  
  76.     public function messagesTemporaryFailed()
  77.     {
  78.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  79.             ->where('type', 'flow')
  80.             ->where('temporary_fail', 1)->filteredByDateRange();
  81.     }
  82.  
  83.     public function messagesPermanentlyFailed()
  84.     {
  85.         return $this->hasMany(Messages::class, 'newsletter_id', 'id')
  86.             ->where('type', 'flow')
  87.             ->where('permanent_fail', 1)->filteredByDateRange();
  88.     }
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement