'integer', 'quantity' => 'decimal:4', 'unit_price' => 'decimal:2', 'total_price' => 'decimal:2', 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; protected $hidden = [ 'deleted_by', 'deleted_at', ]; /** * 이 BOM 항목이 연결된 섹션들 조회 (entity_relationships 기반) */ public function linkedSections() { return ItemSection::whereIn('id', function ($query) { $query->select('parent_id') ->from('entity_relationships') ->where('parent_type', EntityRelationship::TYPE_SECTION) ->where('child_type', EntityRelationship::TYPE_BOM) ->where('child_id', $this->id); }); } /** * 이 BOM 항목의 모든 부모 관계 목록 조회 */ public function allParentRelationships() { return EntityRelationship::where('child_type', EntityRelationship::TYPE_BOM) ->where('child_id', $this->id); } }