From f20528c19e72adb5e18fecb36153d5fa8754ce14 Mon Sep 17 00:00:00 2001 From: Nathan Boiron Date: Thu, 15 Jan 2026 13:43:42 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Mise=20en=20place=20d'un=20glossaire=20et?= =?UTF-8?q?=20de=20r=C3=A8gles=20pour=20doctrine/orm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/adr/doctrine.md | 63 +++++++++++++++++++++++++++++++++++++++++++++ doc/glossaire.md | 13 ++++++++++ 2 files changed, 76 insertions(+) create mode 100644 doc/adr/doctrine.md create mode 100644 doc/glossaire.md diff --git a/doc/adr/doctrine.md b/doc/adr/doctrine.md new file mode 100644 index 000000000..ec2c8451f --- /dev/null +++ b/doc/adr/doctrine.md @@ -0,0 +1,63 @@ +# ADR - Doctrine ORM + +Cet ADR spécifie les règles décidées pour l'utilisation de l'ORM Doctrine. + +## La langue + +Avant toute chose, il a été décidé d'utiliser l'anglais pour les entités, à l'exception de certains sigles peu +traduisibles en français. + +Le [glossaire][glossaire] doit être complété avec chaque nouveau mot anglais afin de conserver un lieu central pour +aider à la compréhension des entités et du code en général. + +## Entité + +Une entité doit déclarer ses propriétés fortement typées et en `public` (au lieu d'avoir des getters/setters). + +Par exemple : + +```php +use Doctrine\ORM\Mapping as ORM; + +#[ORM\Entity] +#[ORM\Table(name: 'exemple')] +class Exemple +{ + #[ORM\Id] + #[ORM\GeneratedValue] + #[ORM\Column] + public ?int $id = null; + + #[ORM\Column(length: 255, nullable: false)] + public string $nonNullbale; + + #[ORM\Column(length: 255, nullable: true)] + public ?string $nullable = null; +} +``` + +## Repository + +Un repository doit hériter de la classe de base `\AppBundle\Doctrine\EntityRepository` et implémenter le constructeur +avec l'entité concernée. + +Par exemple : + +```php +use AppBundle\Exemple\Entity\Exemple; +use AppBundle\Doctrine\EntityRepository; +use Doctrine\Persistence\ManagerRegistry; + +/** + * @extends EntityRepository + */ +final class ExempleRepository extends EntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Exemple::class); + } +} +``` + +[glossaire]: ../glossaire.md diff --git a/doc/glossaire.md b/doc/glossaire.md new file mode 100644 index 000000000..80d252511 --- /dev/null +++ b/doc/glossaire.md @@ -0,0 +1,13 @@ +# Glossaire + +Ce document sert à centraliser et expliquer les termes anglais du projet. + +## Trésorerie + +### Rule + +Désigne une règle de comptabilité, utilisée pour qualifier automatiquement certaines transactions du journal. + +### Category + +La catégorie d'une transaction, par exemple `Transport`, `Inscription` ou `Remboursement`. From 8f2aac053b73cdc9ccadef29a38e49e66909c77e Mon Sep 17 00:00:00 2001 From: Albin Kester <83301974+stakovicz@users.noreply.github.com> Date: Sat, 17 Jan 2026 16:49:35 +0100 Subject: [PATCH 2/2] Add Billeterie Added definitions for Ticket, TicketEventType, and TicketType. --- doc/glossaire.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/doc/glossaire.md b/doc/glossaire.md index 80d252511..bb02d0051 100644 --- a/doc/glossaire.md +++ b/doc/glossaire.md @@ -11,3 +11,21 @@ Désigne une règle de comptabilité, utilisée pour qualifier automatiquement c ### Category La catégorie d'une transaction, par exemple `Transport`, `Inscription` ou `Remboursement`. + + + +## Billeterie + +### Ticket + +C'est un billet pour un évènement pour une personne. + +### TicketEventType + +C'est une offre de billet disponible pour un évènement dédié et qui est lié à un type de billet. +Cette offre a un prix, une période de disponibilité, un nombre maximum de vente possible. + +### TicketType + +C'est un type de billet qui a un tarif par défaut et des conditions techniques. +(Par exemple : `Membre uniquement`, `Réservé au CFP`, ...)