feat(tickets): suivi bidirectionnel des tickets utilisateur via Gitea
CI - Intégration continue / quality-and-tests (pull_request) Successful in 3m27s

Le formulaire 'fire-and-forget' devient un vrai systeme de suivi :
- table locale tickets (user <-> numero d'issue Gitea)
- liste 'Mes tickets' avec etat (En cours / Resolu) et jalon
- page de suivi : etat, labels, jalon, fil de discussion (commentaires)
- reponse depuis le web (ajoute un commentaire sur l'issue Gitea)
- controle d'acces : un utilisateur ne voit que ses propres tickets
- GiteaIssueService etendu (getIssue, getComments, addComment)
- remplace l'ancien SuggestionController ; 5 tests de bout en bout

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 23:38:42 +02:00
parent 69da55b292
commit 7d52c1e440
14 changed files with 568 additions and 194 deletions
@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
/**
* Table de liaison entre un utilisateur CESIZen et le ticket (issue) qu'il a
* ouvert dans Gitea. Elle permet de retrouver « ses » tickets alors que
* l'application les crée toutes sous un même compte de service.
*/
return new class extends Migration
{
public function up(): void
{
Schema::create('tickets', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->cascadeOnDelete();
$table->unsignedInteger('gitea_number'); // numéro de l'issue Gitea
$table->string('title');
$table->string('type');
$table->timestamps();
$table->index(['user_id', 'gitea_number']);
});
}
public function down(): void
{
Schema::dropIfExists('tickets');
}
};