Skip to content

Migration des coupons d'évènement de Ting vers Doctrine - #2386

Open
Korbeil wants to merge 1 commit into
afup:masterfrom
Korbeil:afup-migrer-les-coupons-d
Open

Migration des coupons d'évènement de Ting vers Doctrine#2386
Korbeil wants to merge 1 commit into
afup:masterfrom
Korbeil:afup-migrer-les-coupons-d

Conversation

@Korbeil

@Korbeil Korbeil commented Sep 2, 2026

Copy link
Copy Markdown
Member

Description

Migre la persistance des coupons d'évènement de Ting vers Doctrine ORM (ref #2383) : nouvelle entité et nouveau repository Doctrine, mise à jour de l'unique appelant, suppression des classes Ting.

Changements

  • Ajout de l'entité Doctrine AppBundle\Event\Entity\EventCoupon mappée sur la table existante afup_forum_coupon (id, id_forum, texte) — aucune migration DB nécessaire.
  • Ajout du repository Doctrine AppBundle\Event\Entity\Repository\EventCouponRepository reprenant les trois méthodes du repository Ting : changeCouponForEvent(), couponsListForEvent(), couponsListForEventImploded(). Les méthodes prennent désormais un int $eventId au lieu de l'objet Ting Event, et le remplacement des coupons est exécuté dans une transaction (wrapInTransaction).
  • Mise à jour de AppBundle\Controller\Admin\Event\EventAction pour utiliser le nouveau repository (autowiring inchangé).
  • Suppression des classes Ting AppBundle\Event\Model\EventCoupon et AppBundle\Event\Model\Repository\EventCouponRepository ; retrait des 8 entrées correspondantes de phpstan-baseline.php.
  • Ajout d'un test d'intégration EventCouponRepositoryTest (remplacement des coupons, gestion des valeurs vides/blanches, isolation par évènement, implosion avec séparateur).

Comment tester

  1. vendor/bin/phpunit --testsuite unit
  2. vendor/bin/phpunit --testsuite integration
  3. vendor/bin/phpstan analyse
  4. vendor/bin/behat tests/behat/features/Admin/Events/GestionEvenements.feature — le scénario de création d'évènement remplit le champ event[coupons] et vérifie l'enregistrement.

Notes

  • Seule différence de comportement : changeCouponForEvent() est désormais atomique (suppression + réinsertion dans une transaction) — observable uniquement en cas d'échec intermédiaire.
  • Comportement existant conservé : un champ « coupons » vide ne déclenche pas le remplacement (les coupons existants ne sont pas supprimés).
  • Le code respecte les règles PHPStan custom (afup.doctrine.noDQL, afup.doctrine.repositoryMethods) : requêtes via QueryBuilder, logique confinée au repository.

@Korbeil
Korbeil force-pushed the afup-migrer-les-coupons-d branch from 0e0e4a7 to c9c053b Compare September 2, 2026 20:03
@Korbeil
Korbeil marked this pull request as ready for review September 2, 2026 20:20
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