Add testimonials page with personality-styled cards (Story 2.6)

- Add testimonials table migration with personality enum
- Create Testimonial model with HasTranslations trait
- Add TestimonialSeeder with 4 test testimonials
- Create TestimonialController and TestimonialResource
- Add useFetchTestimonials composable
- Create TestimonialCard component with personality-based styling
- Add temoignages.vue page with loading/error states
- Add testimonials translations in FR/EN

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-06 10:59:54 +01:00
parent 2b043674ca
commit 1cba01595b
15 changed files with 585 additions and 65 deletions

View File

@@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('testimonials', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('role');
$table->string('company')->nullable();
$table->string('avatar')->nullable();
$table->string('text_key');
$table->enum('personality', ['sage', 'sarcastique', 'enthousiaste', 'professionnel'])->default('professionnel');
$table->foreignId('project_id')->nullable()->constrained()->nullOnDelete();
$table->integer('display_order')->default(0);
$table->boolean('is_active')->default(true);
$table->timestamps();
$table->index('display_order');
$table->index('is_active');
});
}
public function down(): void
{
Schema::dropIfExists('testimonials');
}
};