'decimal:3', 'is_critical' => 'boolean', 'is_consumable' => 'boolean', 'warranty_expires_at' => 'date', 'expected_replacement_date' => 'date', 'last_replaced_at' => 'date', 'health_percentage' => 'decimal:2', 'damage_service_list' => 'array', 'multi_year_service_plan' => 'array', ]; protected static function booted(): void { } public function business() { return $this->belongsTo(Business::class); } public function equipment() { return $this->belongsTo(Equipment::class, 'equipment_id'); } public function parent() { return $this->belongsTo(self::class, 'parent_id'); } public function children() { return $this->hasMany(self::class, 'parent_id'); } public function sparePart() { return $this->belongsTo(SparePart::class, 'spare_part_id'); } public function partCatalog() { return $this->belongsTo(PartCatalog::class, 'part_catalog_id'); } public function documents() { return $this->morphMany(AssetDocument::class, 'documentable')->orderBy('sort_order'); } }