'boolean', 'sort_order' => 'integer', ]; protected $hidden = [ 'deleted_by', 'deleted_at', ]; // 계층 public function parent() { return $this->belongsTo(self::class, 'parent_id'); } public function children() { return $this->hasMany(self::class, 'parent_id'); } // 카테고리의 제품들 public function products() { return $this->hasMany(\App\Models\Products\Product::class, 'category_id'); } // 카테고리 필드 public function categoryFields() { return $this->hasMany(CategoryField::class, 'category_id'); } // 태그(폴리모픽) — 이미 taggables 존재 public function tags() { return $this->morphToMany(\App\Models\Commons\Tag::class, 'taggable'); } // 스코프 public function scopeGroup($q, string $group) { return $q->where('code_group', $group); } public function scopeCode($q, string $code) { return $q->where('code', $code); } }