File: /home/armgroup/libs/app/Models/Brand.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
class Brand extends Model
{
use HasFactory, LogsActivity;
protected $guarded = ['id'];
protected $casts = [
'faq' => 'array',
];
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logUnguarded()
->setDescriptionForEvent(fn (string $eventName) => "برند ({$this->name}) ".eventNameTranslate($eventName));
}
protected static function boot()
{
parent::boot();
static::addGlobalScope('order', function (Builder $builder) {
$builder->orderByRaw('ISNULL(sort_order), sort_order ASC');
});
}
public function getRouteKeyName()
{
return 'slug';
}
public function products()
{
return $this->hasMany(Product::class);
}
public function activeProducts()
{
return $this->hasMany(Product::class)->where('status', true);
}
}