Created Resume <-> ResumeComponent link
Some checks failed
linter / quality (push) Successful in 3m12s
tests / ci (push) Failing after 6m16s

This commit is contained in:
2025-08-16 13:32:21 +02:00
parent fb3a5be414
commit 2505afda66
3 changed files with 50 additions and 2 deletions

View File

@@ -2,10 +2,12 @@
namespace App\Models; namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Attributes\UsePolicy; use Illuminate\Database\Eloquent\Attributes\UsePolicy;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
#[UsePolicy(ResumePolicy::class)] #[UsePolicy(ResumePolicy::class)]
class Resume extends Model class Resume extends Model
@@ -22,4 +24,9 @@ class Resume extends Model
{ {
return $this->belongsTo(User::class, 'creator_id'); return $this->belongsTo(User::class, 'creator_id');
} }
public function components(): BelongsToMany
{
return $this->belongsToMany(ResumeComponent::class, 'resume_resume_component')->withPivot('order')->withTimestamps()->orderBy('order');
}
} }

View File

@@ -6,6 +6,7 @@ use App\Policies\ResumeComponentPolicy;
use Illuminate\Database\Eloquent\Attributes\UsePolicy; use Illuminate\Database\Eloquent\Attributes\UsePolicy;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
#[UsePolicy(ResumeComponentPolicy::class)] #[UsePolicy(ResumeComponentPolicy::class)]
class ResumeComponent extends Model class ResumeComponent extends Model
@@ -16,4 +17,9 @@ class ResumeComponent extends Model
protected $fillable = [ protected $fillable = [
'vue_component_name', 'vue_component_name',
]; ];
public function resumes(): BelongsToMany
{
return $this->belongsToMany(Resume::class, 'resume_resume_component')->withPivot('order')->withTimestamps();
}
} }

View File

@@ -0,0 +1,35 @@
<?php
use App\Models\Resume;
use App\Models\ResumeComponent;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('resume_resume_component', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(Resume::class)->constrained()->onDelete('cascade');
$table->foreignIdFor(ResumeComponent::class)->constrained()->onDelete('cascade');
$table->integer('order')->default(0);
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('resume_resume_component_link');
}
};