belongsTo(ResumeComponent::class, 'resume_component_id'); } public function componentPlacements(): HasMany { return $this->hasMany(ResumeComponentPlacement::class); } public function inputData(): HasMany { return $this->hasMany(ResumeComponentInputData::class, 'resume_component_data_id'); } public static function createWithInputs(ResumeComponent $component): ResumeComponentData { $componentData = ResumeComponentData::create([ 'resume_component_id' => $component->id, ]); foreach ($component->inputs()->get() as $input) { $componentData->inputData()->create([ 'resume_component_data_id' => $componentData->id, 'resume_component_input_id' => $input->id, ]); } return $componentData->refresh(); } public static function copyFrom(ResumeComponentData $existingData): ResumeComponentData { $componentData = ResumeComponentData::create([ 'resume_component_id' => $existingData->resume_component_id, ]); foreach ($existingData->inputData()->get() as $inputDatum) { $componentData->inputData()->create([ 'resume_component_data_id' => $componentData->id, 'resume_component_input_id' => $inputDatum->resume_component_input_id, 'value' => $inputDatum->value, ]); } return $componentData->refresh(); } }