<?php namespace App\Models; use App\Models\User; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use App\Models\Scopes\StatusScope; use App\Traits\CreatedUpdatedBy; class Franchises extends Model { use HasFactory, CreatedUpdatedBy; protected $primaryKey = 'franchise_id'; public $timestamps = true; protected $fillable = [ 'for', 'title', 'alias', 'text', 'thumb', 'banners', 'display_order', 'status', 'created_at', 'createdby', 'updated_at', 'updatedby', ]; protected $appends = ['status_name']; protected function getStatusNameAttribute() { return $this->status == 1 ? '<span class="badge text-bg-success-soft"> Active </span>' : '<span class="badge text-bg-danger-soft">Inactive</span>'; } protected function createdBy(): Attribute { return Attribute::make( get: fn ($value) => User::find($value) ? User::find($value)->name : '', ); } protected function updatedBy(): Attribute { return Attribute::make( get: fn ($value) => User::find($value) ? User::find($value)->name : '', ); } public static function boot(){ parent::boot(); static::addGlobalScope(new StatusScope()); } }