Files
daragt-kalbasa/app/Models/Product.php
2026-06-06 12:56:15 +05:00

62 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\ProductFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Support\Str;
class Product extends Model
{
/** @use HasFactory<ProductFactory> */
use HasFactory;
protected $fillable = [
'category_id',
'name',
'slug',
'price',
'price_unit',
'description',
'image',
'availability_status',
'is_active',
'sort_order',
];
protected function casts(): array
{
return [
'price' => 'decimal:2',
'is_active' => 'boolean',
'sort_order' => 'integer',
];
}
protected static function booted(): void
{
static::saving(function (Product $product): void {
if (empty($product->slug)) {
$product->slug = Str::slug($product->name);
}
});
}
public function category(): BelongsTo
{
return $this->belongsTo(Category::class);
}
public function scopeActive($query): void
{
$query->where('is_active', true);
}
public function isAvailable(): bool
{
return $this->availability_status === 'available';
}
}