Viewing file: Email.php (2.47 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Webkul\Email\Models;
use Illuminate\Database\Eloquent\Model; use Webkul\Contact\Models\PersonProxy; use Webkul\Email\Contracts\Email as EmailContract; use Webkul\Lead\Models\LeadProxy; use Webkul\Tag\Models\TagProxy;
class Email extends Model implements EmailContract { /** * The table associated with the model. * * @var string */ protected $table = 'emails';
/** * The attributes that should be cast. * * @var array */ protected $casts = [ 'folders' => 'array', 'sender' => 'array', 'from' => 'array', 'reply_to' => 'array', 'cc' => 'array', 'bcc' => 'array', 'reference_ids' => 'array', ];
/** * The attributes that are appended. * * @var array */ protected $appends = [ 'time_ago', ];
/** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'subject', 'source', 'name', 'user_type', 'is_read', 'folders', 'from', 'sender', 'reply_to', 'cc', 'bcc', 'unique_id', 'message_id', 'reference_ids', 'reply', 'person_id', 'parent_id', 'lead_id', 'created_at', 'updated_at', ];
/** * Get the parent email. */ public function parent() { return $this->belongsTo(EmailProxy::modelClass(), 'parent_id'); }
/** * Get the lead. */ public function lead() { return $this->belongsTo(LeadProxy::modelClass()); }
/** * Get the emails. */ public function emails() { return $this->hasMany(EmailProxy::modelClass(), 'parent_id'); }
/** * Get the person that owns the thread. */ public function person() { return $this->belongsTo(PersonProxy::modelClass()); }
/** * The tags that belong to the lead. */ public function tags() { return $this->belongsToMany(TagProxy::modelClass(), 'email_tags'); }
/** * Get the attachments. */ public function attachments() { return $this->hasMany(AttachmentProxy::modelClass(), 'email_id'); }
/** * Get the time ago. */ public function getTimeAgoAttribute(): string { return $this->created_at->diffForHumans(); } }
|