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..bb02d0051 --- /dev/null +++ b/doc/glossaire.md @@ -0,0 +1,31 @@ +# 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`. + + + +## 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`, ...)