You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.8 KiB
79 lines
1.8 KiB
5 years ago
|
<?php
|
||
|
|
||
|
namespace App;
|
||
|
|
||
|
use Illuminate\Database\Eloquent\Model;
|
||
|
use App\Appended\Traites\GetDateAttributesTrait;
|
||
|
use Carbon\Carbon;
|
||
|
|
||
|
class Task extends Model
|
||
|
{
|
||
|
use GetDateAttributesTrait;
|
||
|
|
||
|
protected $fillable = [
|
||
|
'type', 'description', 'activity', 'status', 'user_id', 'owned_id', 'activity', 'taskable_id', 'taskable_type', 'title', 'date'
|
||
|
];
|
||
|
|
||
|
public function setActivityAttribute($value)
|
||
|
{
|
||
|
$this->attributes['activity'] = json_encode($value, JSON_UNESCAPED_UNICODE);
|
||
|
}
|
||
|
|
||
|
public function setDateAttribute($value)
|
||
|
{
|
||
|
$carbon = new Carbon();
|
||
|
$this->attributes['date'] = $carbon->timestamp($value)->timezone('Asia/Tehran')->toDateTimeString();
|
||
|
}
|
||
|
|
||
|
|
||
|
public function finances()
|
||
|
{
|
||
|
return $this->morphMany('App\Finance', 'financable');
|
||
|
}
|
||
|
|
||
|
public function uploadables()
|
||
|
{
|
||
|
return $this->morphMany('App\Uploadable', 'uploadable');
|
||
|
}
|
||
|
|
||
|
public function gallery()
|
||
|
{
|
||
|
return $this->morphToMany('App\Gallery', 'uploadable')->wherePivot('image_role', 'Gallery')->where('parent_id', null);;
|
||
|
}
|
||
|
|
||
|
public function images()
|
||
|
{
|
||
|
return $this->morphToMany('App\Gallery', 'uploadable');
|
||
|
}
|
||
|
|
||
|
public function logo()
|
||
|
{
|
||
|
return $this->morphToMany('App\Gallery', 'uploadable')->wherePivot('image_role', 'logo')->where('parent_id', null);;
|
||
|
}
|
||
|
|
||
|
public function business()
|
||
|
{
|
||
|
return $this->belongsTo('App\Business');
|
||
|
}
|
||
|
|
||
|
public function user()
|
||
|
{
|
||
|
return $this->belongsTo('App\User');
|
||
|
}
|
||
|
|
||
|
public function owner()
|
||
|
{
|
||
|
return $this->belongsTo('App\User', 'owned_id');
|
||
|
}
|
||
|
|
||
|
public function comments()
|
||
|
{
|
||
|
return $this->morphMany('App\Comment', 'commentable')->orderBy('updated_at', 'desc');
|
||
|
}
|
||
|
|
||
|
public function taskable()
|
||
|
{
|
||
|
return $this->morphTo();
|
||
|
}
|
||
|
}
|