/
var
/
www
/
html
/
gnet_live
/
app
/
Models
/
Upload File
HOME
<?php namespace App\Models; use Carbon\Carbon; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Spatie\Sitemap\Contracts\Sitemapable; use Spatie\Sitemap\Tags\Url; class Product extends Model implements Sitemapable { use HasFactory; protected $table = 'product'; protected $fillable = [ // 'user_id', 'name', 'url', 'category_id', 'brand_id', 'meta_title', 'meta_desc', 'keywords', 'short_text', 'product_info', 'additional_info', 'wa_text', 'catalogue_id', 'created_at', 'updated_at', ]; public function category() { return $this->belongsTo(Category::class); } public function brand() { return $this->belongsTo(Brand::class); } public function tags() { return $this->belongsToMany(Tags::class, 'product_tags', 'product_id', 'tags_id'); } public function productImages(): HasMany { return $this->hasMany(ProductImage::class); } public function types() { return $this->hasMany(ProductType::class); } public function catalogue() { return $this->belongsTo(Catalogue::class); } public function toSitemapTag(): Url|string|array { return Url::create(route('product.details', [ 'categoryUrl' => $this->category->url, 'productUrl' => $this->url, ])) ->setLastModificationDate(Carbon::create($this->updated_at)) ->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY) ->setPriority(0.1); } }