
PK 
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Models\Cart;
class Product extends Model
{
protected $fillable = ['title', 'slug', 'sku', 'summary', 'description', 'cat_id', 'child_cat_id', 'price', 'brand_id', 'discount', 'status', 'photo', 'size', 'stock', 'is_featured', 'condition', 'isGreat_deals'];
public function cat_info(){
return $this->hasOne('App\Models\Category','id','cat_id');
}
public function sub_cat_info(){
return $this->hasOne('App\Models\Category','id','child_cat_id');
}
public static function getAllProduct(){
return Product::with(['cat_info','sub_cat_info'])->orderBy('id','desc')->paginate(10);
}
public function rel_prods(){
return $this->hasMany('App\Models\Product','cat_id','cat_id')->where('status','active')->orderBy('id','DESC')->limit(8);
}
public function getReview(){
return $this->hasMany('App\Models\ProductReview','product_id','id')->with('user_info')->where('status','active')->orderBy('id','DESC');
}
public static function getProductBySlug($slug){
return Product::with(['cat_info','rel_prods','getReview'])->where('slug',$slug)->first();
}
public static function countActiveProduct(){
$data=Product::where('status','active')->count();
if($data){
return $data;
}
return 0;
}
public function carts(){
return $this->hasMany(Cart::class)->whereNotNull('order_id');
}
public function wishlists(){
return $this->hasMany(Wishlist::class)->whereNotNull('cart_id');
}
public function brand(){
return $this->hasOne(Brand::class,'id','brand_id');
}
}


PK 99