Skip to content

release: consolider les phases 5 à 9 — EF Core, domaine Tickets, documentation#7

Merged
MGNetworking merged 3 commits into
mainfrom
develop
Apr 18, 2026
Merged

release: consolider les phases 5 à 9 — EF Core, domaine Tickets, documentation#7
MGNetworking merged 3 commits into
mainfrom
develop

Conversation

@MGNetworking

Copy link
Copy Markdown
Owner

TLDR

Consolidation des phases 5 à 9 : intégration EF Core avec SQLite, refactoring complet du domaine Task → Tickets de Support (DDD), et mise à jour de la documentation.


Type

Release

Description

PR de release regroupant les évolutions majeures depuis la dernière version stable :

  • Phase 5 à 8 : refactoring du domaine métier (Task → Tickets de Support) avec Aggregate Root, Value Objects et transitions de statut contrôlées
  • Phase 9 : intégration Entity Framework Core avec SQLite, migrations automatiques au démarrage, seeder idempotent
  • Documentation : sommaire, section Postman avec variables d'environnement, structure docs/ corrigée

Changements techniques

  • Ticket — Aggregate Root avec setters privés et méthodes métier
  • TicketTitle / TicketStatus — Value Objects avec invariants
  • TicketConfiguration — ValueConverters pour la persistance sans polluer le domaine
  • TicketRepository — implémentation EF Core avec ExistsByTitle (anti-pattern N+1 corrigé)
  • ExceptionMiddleware — gestion centralisée des erreurs HTTP
  • 90 tests passants (unitaires + intégration)

Tests

  • 90 tests passants (unitaires + intégration)
  • Tests intégration sur vraie base SQLite in-memory

Checklist

  • Le code respecte les conventions DDD
  • Commits conventionnels
  • Collection Postman à jour

🤖 Generated with Claude Code

MGNetworking and others added 3 commits April 15, 2026 14:43
feat(phase9-efcore): intégrer Entity Framework Core avec SQLite

Remplace la liste statique en mémoire par une vraie persistance SQLite
via Entity Framework Core, en conservant l'architecture DDD.

  - Ajouter AppDbContext, TaskItemConfiguration avec ValueConverter TaskTitle ↔ string
  - Réécrire TaskRepository avec EF Core
  - Générer la migration InitialCreate et configurer Program.cs
  - Externaliser la chaîne de connexion dans appsettings.json
  - Ajouter TaskSeeder pour les données initiales
  - Écrire les tests d'intégration du repository avec SQLite in-memory
  - Documenter la configuration EF Core dans docs/reference/efcore-setup.md

  Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Refactoring complet du domaine et corrections de revue de code.

  Nouveau domaine :
  - Ticket (Aggregate Root), TicketTitle/TicketStatus (Value Objects)
  - Priority et Category (enums), InvalidTransitionException → 422
  - 90 tests unitaires et d'intégration

  Corrections de revue :
  - Anti-pattern N+1 : ExistsByTitle() avec SELECT 1 LIMIT 1 (EF Core IQueryable)
  - Parsing des filtres déplacé du Controller vers le Service
  - [MinLength(3)]/[MaxLength(100)] sur Title dans les DTOs

  Nettoyage :
  - Suppression des fichiers pédagogiques (quiz, roadmap, docs de cours)
  - README et CLAUDE.md repositionnés pour présentation recruteur
Ajoute un sommaire avec ancres, une section d'import Postman
avec le tableau des variables d'environnement, et corrige
la structure docs/ pour refléter les fichiers existants.
@MGNetworking MGNetworking merged commit d4bbb31 into main Apr 18, 2026
2 checks passed
MGNetworking added a commit that referenced this pull request Apr 18, 2026
…mentation (#7) (#9)

- feat(phase9-efcore): intégrer Entity Framework Core avec SQLite

    Remplace la liste statique en mémoire par une vraie persistance SQLite
    via Entity Framework Core, en conservant l'architecture DDD.

    - Ajouter AppDbContext et TicketConfiguration avec ValueConverter TicketTitle ↔ string
    - Réécrire TicketRepository avec EF Core
    - Générer la migration InitialCreate et configurer Program.cs
    - Externaliser la chaîne de connexion dans appsettings.json
    - Ajouter TicketSeeder pour les données initiales
    - Écrire les tests d'intégration du repository avec SQLite in-memory

  - refactor(domain): remplacer le domaine Task par Tickets de Support

    Refactoring complet du domaine et corrections de revue de code.

    Nouveau domaine :
    - Ticket (Aggregate Root), TicketTitle/TicketStatus (Value Objects)
    - Priority et Category (enums), InvalidTransitionException → 422
    - 90 tests unitaires et d'intégration

    Corrections de revue :
    - Anti-pattern N+1 : ExistsByTitle() avec SELECT 1 LIMIT 1
    - Parsing des filtres déplacé du Controller vers le Service
    - [MinLength(3)]/[MaxLength(100)] sur Title dans les DTOs

    Nettoyage :
    - Suppression des fichiers obsolètes
    - README et CLAUDE.md mis à jour

  - docs(readme): ajouter sommaire et section Postman

    Ajoute un sommaire avec ancres, une section d'import Postman
    avec le tableau des variables d'environnement, et corrige
    la structure docs/ pour refléter les fichiers existants.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant