'datetime', ]; public function lineRevision() { return $this->belongsTo(LineRevision::class, 'line_revision_id'); } public function itemMaster() { return $this->belongsTo(ItemMaster::class, 'item_master_id'); } public function lines() { return $this->hasMany(BomLine::class, 'bom_id')->orderBy('sort_order'); } public function rootLines() { return $this->hasMany(BomLine::class, 'bom_id')->whereNull('parent_line_id')->orderBy('sort_order'); } public function changeRequests() { return $this->hasMany(BomChangeRequest::class, 'bom_id'); } public function effectivities() { return $this->hasMany(BomEffectivity::class, 'bom_id'); } /** * Legacy helper used by older MRP controllers. * * @return array */ public function get_bom_details(float $plannedQty = 1.0, ?int $locationId = null): array { return app(LiveBomCostingService::class)->analyze($this, $plannedQty, $locationId); } }