78 lines
1.6 KiB
PHP
78 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Shop;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
use Spatie\Image\Manipulations;
|
|
use Spatie\MediaLibrary\Models\Media;
|
|
use Spatie\MediaLibrary\HasMedia\HasMedia;
|
|
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;
|
|
|
|
use Rinvex\Categories\Traits\Categorizable;
|
|
use Rinvex\Tags\Traits\Taggable;
|
|
use Fico7489\Laravel\EloquentJoin\Traits\EloquentJoin;
|
|
|
|
class Article extends Model implements HasMedia
|
|
{
|
|
use Categorizable, EloquentJoin, HasMediaTrait, Taggable;
|
|
|
|
protected $guarded = ['id'];
|
|
protected $table = 'shop_articles';
|
|
|
|
public function article_family()
|
|
{
|
|
return $this->belongsTo('App\Models\Shop\ArticleFamily');
|
|
}
|
|
|
|
public function images()
|
|
{
|
|
return $this->hasMany('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
|
}
|
|
|
|
public function image()
|
|
{
|
|
return $this->hasOne('App\Models\Core\Media','model_id')->where('model_type','App\Models\Shop\Article');
|
|
}
|
|
|
|
public function inventories()
|
|
{
|
|
return $this->hasMany('App\Models\Shop\Inventory');
|
|
}
|
|
|
|
public function invoiceItems()
|
|
{
|
|
return $this->hasMany('App\Models\Shop\InvoiceItem');
|
|
}
|
|
|
|
public function prices()
|
|
{
|
|
return $this->hasMany('App\Models\Shop\Price');
|
|
}
|
|
|
|
public function product()
|
|
{
|
|
return $this->morphTo();
|
|
}
|
|
|
|
public function scopeByArticle($query, $id)
|
|
{
|
|
return $query->where('shop_articles.id',$id);
|
|
}
|
|
|
|
public function scopeByCategory($query, $category_id)
|
|
{
|
|
|
|
}
|
|
|
|
public function scopeByFamily($query, $id)
|
|
{
|
|
return $query->where('shop_articles.article_family_id',$id);
|
|
}
|
|
|
|
public function registerMediaConversions(Media $media = null)
|
|
{
|
|
$this->addMediaConversion('thumb')->fit(Manipulations::FIT_CROP, 150, 150);
|
|
}
|
|
|
|
} |