?
Current File : /home/sanghavirealty/public_html/appazwer/Models/Categories.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Categories extends Model
{
    use HasFactory;

    public $table="categoryalphatbl";

    const CREATED_AT = 'createdate';
    const UPDATED_AT = 'modifydate';

    public static function findfeaturedCategories($id=3){

        $getCategory = Categories::Where('currentstatus' , '0')
               ->take($id)
               ->orderBy('createdate', 'DESC')
               ->get();

            

               return  $getCategory ;
         
           }

           public function subcategories()
           {
        
            // return $this->hasMany(categories::class,'parentid') ;
        
            return $this->hasMany(Categories::class,'parentid')->with('subcategories') ;
        
            }       



    

    public static function categoryCombo($id=0)
    { 
     return Categories::Where('parentid', 0)
     ->Where('currentstatus',0)
     ->with('catSub.catSub')
     ->get();

    //  ->orderBy('parentid', 'ASC')
    
     }


     public function catSub()
     {
 
      return $this->hasMany(Categories::class,'parentid')->with('catSub') ;
  
      }


     public function getCategoryName()
     {
             return $this->belongsTo(Product::class, 'categories_id' );
     }


     public function getCategoryNamehas()
     {
        //filter
         return $this->hasMany(Product::class, 'categories_id' );;
     }


     public function getParentTitle()
     {
             return $this->belongsTo(Product::class, 'parentid' );
     }


     public static function getCategoryListForComposer ($id=0){

        // $catid = trim($id) ;


       $getCategoryList =  $dataviewer = Categories::Where('currentstatus',0)
        ->with('subcategories.subcategories')
        ->get();


        return $getCategoryList ;


     }



     public static function  finalCategoryForPostv2($req){ 

        //The function check id & category id 
        //print_R ($req->all()).'---------<br>-';

        $finalCategory = 0 ;

        $catid = 0 ;
        $categories = 0; 
        $subcategory = 0 ;
        $subsubcategory = 0 ;

        $catid = trim($req->catid) ;
        $categories = trim($req->categories) ; 
        $subcategory = trim($req->subcategory) ;
        $subsubcategory = trim($req->subsubcategory) ;

        //&& (empty($subcategory) OR empty($subsubcategory) OR empty($categories))
      
     
        
        if ($catid != '' && ($categories == '0.0' && $subcategory == '0.0' && $subsubcategory == '0.0') ) {

            $finalCategory = $catid ;
           

            }else if($subsubcategory != '0.0'){ 

            $finalCategory = $subsubcategory ;
          
            } else if ($subcategory != '0.0') {
            
            $finalCategory = $subcategory ;
            
            } else { 

            $finalCategory = $categories ; 
         
        }

            return $finalCategory ;


     }


     public function finalCategoryForPostv1($req){

     $category = 0;
     $subcategoryid = 0;
     $subsubcategoryid = 0;

     $finalcategory = 0 ;

     $category =$req->categories;
     $subcategoryid =$req->subcategory;
     $subsubcategoryid =$req->subsubcategory;


            if($subsubcategoryid != '') {

                $finalcategory = $subsubcategoryid ;

            }elseif ($subcategoryid != '') {

                $finalcategory = $subsubcategoryid ;

            } else {

                    $finalcategory = $category ;

            }

     return $finalcategory ;

     }





    public function getProducts(){

        return $this->belongsToMany(Product::class);

    }




}