Minimal Viable Product + Refactor to pinia store + Fix PDF export
Some checks failed
linter / quality (push) Successful in 3m37s
tests / ci (push) Failing after 13m21s

This commit is contained in:
2025-09-16 16:30:37 +02:00
parent f3ff6fd6ac
commit cb242e59ba
39 changed files with 1055 additions and 137 deletions

View File

@@ -2,24 +2,64 @@
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\Pivot;
class ResumeComponentData extends Pivot
class ResumeComponentData extends Model
{
protected $table = 'resume_component_data';
public function component()
protected $fillable = [
'resume_component_id',
];
public function component(): BelongsTo
{
return $this->belongsTo(ResumeComponent::class, 'resume_component_id');
}
public function componentPlacements()
public function componentPlacements(): HasMany
{
return $this->hasMany(ResumeComponentPlacement::class);
}
public function inputData()
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();
}
}