Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Flow extends Model
- {
- protected $table = 'flow';
- protected $fillable = [
- 'title',
- 'subject',
- 'preview_text',
- 'message',
- 'template_id',
- 'project_id',
- 'sender_id'
- ];
- public function getFlowsByProject($id = false)
- {
- if (!$id)
- $id = request()->get('project');
- return $this
- ->where('project_id', $id)
- ->with('template')
- ->with('sender')
- ->withCount([
- 'messages',
- 'messagesDelivered',
- 'messagesOpened',
- 'messagesClicked',
- 'messagesSpam',
- 'messagesTemporaryFailed',
- 'messagesPermanentlyFailed',
- ])
- ->latest()
- ->paginate(5);
- }
- /**
- *
- * Relations
- *
- **/
- public function messages()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')->filteredByDateRange();
- }
- public function messagesDelivered()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('delivered', 1)->filteredByDateRange();
- }
- public function messagesOpened()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('opened', 1)->filteredByDateRange();
- }
- public function messagesClicked()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('clicked', 1)->filteredByDateRange();
- }
- public function messagesSpam()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('spam', 1)->filteredByDateRange();
- }
- public function messagesTemporaryFailed()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('temporary_fail', 1)->filteredByDateRange();
- }
- public function messagesPermanentlyFailed()
- {
- return $this->hasMany(Messages::class, 'newsletter_id', 'id')
- ->where('type', 'flow')
- ->where('permanent_fail', 1)->filteredByDateRange();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement