From e86d40bc27aca076fd627eff4d2543704f30a108 Mon Sep 17 00:00:00 2001
From: Tom Rouillon <tom.rouillon3@etu.univ-lorraine.fr>
Date: Wed, 17 Jan 2024 11:48:33 +0100
Subject: [PATCH] Add Entities

---
 .gitignore                                    |   4 +-
 Back_end/composer.json                        |   1 +
 Back_end/composer.lock                        | 195 +++++++++++++++++-
 Back_end/config/packages/doctrine.yaml        |   2 +-
 Back_end/src/Entity/Abonnement.php            |  20 ++
 Back_end/src/Entity/FrequenceType.php         |  66 ++++++
 Back_end/src/Entity/Panier.php                |  66 ++++++
 Back_end/src/Entity/PointDeDepot.php          | 186 +++++++++++++++++
 Back_end/src/Entity/Tournee.php               |  36 ++++
 Back_end/src/Entity/Unite.php                 |  57 +++++
 .../src/Repository/AbonnementRepository.php   |  48 +++++
 .../Repository/FrequenceTypeRepository.php    |  48 +++++
 Back_end/src/Repository/PanierRepository.php  |  48 +++++
 .../src/Repository/PointDeDepotRepository.php |  48 +++++
 Back_end/src/Repository/TourneeRepository.php |  48 +++++
 Back_end/src/Repository/UniteRepository.php   |  48 +++++
 docker/php/Dockerfile                         |   4 +-
 17 files changed, 921 insertions(+), 4 deletions(-)
 create mode 100644 Back_end/src/Entity/Abonnement.php
 create mode 100644 Back_end/src/Entity/FrequenceType.php
 create mode 100644 Back_end/src/Entity/Panier.php
 create mode 100644 Back_end/src/Entity/PointDeDepot.php
 create mode 100644 Back_end/src/Entity/Tournee.php
 create mode 100644 Back_end/src/Entity/Unite.php
 create mode 100644 Back_end/src/Repository/AbonnementRepository.php
 create mode 100644 Back_end/src/Repository/FrequenceTypeRepository.php
 create mode 100644 Back_end/src/Repository/PanierRepository.php
 create mode 100644 Back_end/src/Repository/PointDeDepotRepository.php
 create mode 100644 Back_end/src/Repository/TourneeRepository.php
 create mode 100644 Back_end/src/Repository/UniteRepository.php

diff --git a/.gitignore b/.gitignore
index 4de9901..384d759 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
-mysql_data/*
\ No newline at end of file
+mysql_data/*
+*.tar
+.idea/*
\ No newline at end of file
diff --git a/Back_end/composer.json b/Back_end/composer.json
index 9e0709e..4200948 100644
--- a/Back_end/composer.json
+++ b/Back_end/composer.json
@@ -10,6 +10,7 @@
         "doctrine/doctrine-bundle": "^2.11",
         "doctrine/doctrine-migrations-bundle": "^3.3",
         "doctrine/orm": "^2.17",
+        "nelmio/api-doc-bundle": "*",
         "phpdocumentor/reflection-docblock": "^5.3",
         "phpstan/phpdoc-parser": "^1.25",
         "symfony/asset": "7.0.*",
diff --git a/Back_end/composer.lock b/Back_end/composer.lock
index e931765..173163b 100644
--- a/Back_end/composer.lock
+++ b/Back_end/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "838f369c8c8229d7a82908010142d978",
+    "content-hash": "1184319739054503af35310e8d42d23b",
     "packages": [
         {
             "name": "composer/semver",
@@ -1578,6 +1578,118 @@
             ],
             "time": "2023-10-27T15:32:31+00:00"
         },
+        {
+            "name": "nelmio/api-doc-bundle",
+            "version": "v4.18.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nelmio/NelmioApiDocBundle.git",
+                "reference": "2360674a7bd8bbf5fb834b08e89662b6ad851618"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nelmio/NelmioApiDocBundle/zipball/2360674a7bd8bbf5fb834b08e89662b6ad851618",
+                "reference": "2360674a7bd8bbf5fb834b08e89662b6ad851618",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "php": ">=7.2",
+                "phpdocumentor/reflection-docblock": "^3.1|^4.0|^5.0",
+                "psr/cache": "^1.0|^2.0|^3.0",
+                "psr/container": "^1.0|^2.0",
+                "psr/log": "^1.0|^2.0|^3.0",
+                "symfony/config": "^5.4|^6.0|^7.0",
+                "symfony/console": "^5.4|^6.0|^7.0",
+                "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/framework-bundle": "^5.4.24|^6.0|^7.0",
+                "symfony/http-foundation": "^5.4|^6.0|^7.0",
+                "symfony/http-kernel": "^5.4|^6.0|^7.0",
+                "symfony/options-resolver": "^5.4|^6.0|^7.0",
+                "symfony/property-info": "^5.4|^6.0|^7.0",
+                "symfony/routing": "^5.4|^6.0|^7.0",
+                "zircote/swagger-php": "^4.2.15"
+            },
+            "require-dev": {
+                "api-platform/core": "^2.7.0|^3",
+                "composer/package-versions-deprecated": "1.11.99.1",
+                "doctrine/annotations": "^2.0",
+                "friendsofsymfony/rest-bundle": "^2.8|^3.0",
+                "jms/serializer": "^1.14|^3.0",
+                "jms/serializer-bundle": "^2.3|^3.0|^4.0|^5.0",
+                "phpunit/phpunit": "^8.5|^9.6",
+                "sensio/framework-extra-bundle": "^5.4|^6.0",
+                "symfony/asset": "^5.4|^6.0|^7.0",
+                "symfony/browser-kit": "^5.4|^6.0|^7.0",
+                "symfony/cache": "^5.4|^6.0|^7.0",
+                "symfony/dom-crawler": "^5.4|^6.0|^7.0",
+                "symfony/expression-language": "^5.4|^6.0|^7.0",
+                "symfony/form": "^5.4|^6.0|^7.0",
+                "symfony/phpunit-bridge": "^6.4",
+                "symfony/property-access": "^5.4|^6.0|^7.0",
+                "symfony/serializer": "^5.4|^6.0|^7.0",
+                "symfony/stopwatch": "^5.4|^6.0|^7.0",
+                "symfony/templating": "^5.4|^6.0|^7.0",
+                "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+                "symfony/validator": "^5.4|^6.0|^7.0",
+                "willdurand/hateoas-bundle": "^1.0|^2.0"
+            },
+            "suggest": {
+                "api-platform/core": "For using an API oriented framework.",
+                "doctrine/annotations": "For using doctrine annotations",
+                "friendsofsymfony/rest-bundle": "For using the parameters annotations.",
+                "jms/serializer-bundle": "For describing your models.",
+                "symfony/asset": "For using the Swagger UI.",
+                "symfony/cache": "For using a PSR-6 compatible cache implementation with the API doc generator.",
+                "symfony/form": "For describing your form type models.",
+                "symfony/monolog-bundle": "For using a PSR-3 compatible logger implementation with the API PHP describer.",
+                "symfony/serializer": "For describing your models.",
+                "symfony/twig-bundle": "For using the Swagger UI.",
+                "symfony/validator": "For describing the validation constraints in your models.",
+                "willdurand/hateoas-bundle": "For extracting HATEOAS metadata."
+            },
+            "type": "symfony-bundle",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Nelmio\\ApiDocBundle\\": ""
+                },
+                "exclude-from-classmap": [
+                    "Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nelmio",
+                    "homepage": "http://nelm.io"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://github.com/nelmio/NelmioApiDocBundle/contributors"
+                }
+            ],
+            "description": "Generates documentation for your REST API from annotations",
+            "keywords": [
+                "api",
+                "doc",
+                "documentation",
+                "rest"
+            ],
+            "support": {
+                "issues": "https://github.com/nelmio/NelmioApiDocBundle/issues",
+                "source": "https://github.com/nelmio/NelmioApiDocBundle/tree/v4.18.1"
+            },
+            "time": "2024-01-15T16:16:29+00:00"
+        },
         {
             "name": "phpdocumentor/reflection-common",
             "version": "2.2.0",
@@ -7546,6 +7658,87 @@
                 "source": "https://github.com/webmozarts/assert/tree/1.11.0"
             },
             "time": "2022-06-03T18:03:27+00:00"
+        },
+        {
+            "name": "zircote/swagger-php",
+            "version": "4.8.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/zircote/swagger-php.git",
+                "reference": "598958d8a83cfbd44ba36388b2f9ed69e8b86ed4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/zircote/swagger-php/zipball/598958d8a83cfbd44ba36388b2f9ed69e8b86ed4",
+                "reference": "598958d8a83cfbd44ba36388b2f9ed69e8b86ed4",
+                "shasum": ""
+            },
+            "require": {
+                "ext-json": "*",
+                "php": ">=7.2",
+                "psr/log": "^1.1 || ^2.0 || ^3.0",
+                "symfony/deprecation-contracts": "^2 || ^3",
+                "symfony/finder": ">=2.2",
+                "symfony/yaml": ">=3.3"
+            },
+            "require-dev": {
+                "composer/package-versions-deprecated": "^1.11",
+                "doctrine/annotations": "^1.7 || ^2.0",
+                "friendsofphp/php-cs-fixer": "^2.17 || ^3.0",
+                "phpstan/phpstan": "^1.6",
+                "phpunit/phpunit": ">=8",
+                "vimeo/psalm": "^4.23"
+            },
+            "suggest": {
+                "doctrine/annotations": "^1.7 || ^2.0"
+            },
+            "bin": [
+                "bin/openapi"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "OpenApi\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Robert Allen",
+                    "email": "zircote@gmail.com"
+                },
+                {
+                    "name": "Bob Fanger",
+                    "email": "bfanger@gmail.com",
+                    "homepage": "https://bfanger.nl"
+                },
+                {
+                    "name": "Martin Rademacher",
+                    "email": "mano@radebatz.net",
+                    "homepage": "https://radebatz.net"
+                }
+            ],
+            "description": "swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations",
+            "homepage": "https://github.com/zircote/swagger-php/",
+            "keywords": [
+                "api",
+                "json",
+                "rest",
+                "service discovery"
+            ],
+            "support": {
+                "issues": "https://github.com/zircote/swagger-php/issues",
+                "source": "https://github.com/zircote/swagger-php/tree/4.8.3"
+            },
+            "time": "2024-01-07T22:33:09+00:00"
         }
     ],
     "packages-dev": [
diff --git a/Back_end/config/packages/doctrine.yaml b/Back_end/config/packages/doctrine.yaml
index 9b33904..071e986 100644
--- a/Back_end/config/packages/doctrine.yaml
+++ b/Back_end/config/packages/doctrine.yaml
@@ -4,7 +4,7 @@ doctrine:
 
         # IMPORTANT: You MUST configure your server version,
         # either here or in the DATABASE_URL env var (see .env file)
-        server_version: '1.24.0'
+        server_version: '8.0'
 
         profiling_collect_backtrace: '%kernel.debug%'
     orm:
diff --git a/Back_end/src/Entity/Abonnement.php b/Back_end/src/Entity/Abonnement.php
new file mode 100644
index 0000000..f8d6dc0
--- /dev/null
+++ b/Back_end/src/Entity/Abonnement.php
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\AbonnementRepository;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: AbonnementRepository::class)]
+class Abonnement
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+}
diff --git a/Back_end/src/Entity/FrequenceType.php b/Back_end/src/Entity/FrequenceType.php
new file mode 100644
index 0000000..ea631df
--- /dev/null
+++ b/Back_end/src/Entity/FrequenceType.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\FrequenceTypeRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: FrequenceTypeRepository::class)]
+class FrequenceType
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $debut = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $fin = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $nom = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getDebut(): ?\DateTimeInterface
+    {
+        return $this->debut;
+    }
+
+    public function setDebut(\DateTimeInterface $debut): static
+    {
+        $this->debut = $debut;
+
+        return $this;
+    }
+
+    public function getFin(): ?\DateTimeInterface
+    {
+        return $this->fin;
+    }
+
+    public function setFin(\DateTimeInterface $fin): static
+    {
+        $this->fin = $fin;
+
+        return $this;
+    }
+
+    public function getNom(): ?string
+    {
+        return $this->nom;
+    }
+
+    public function setNom(string $nom): static
+    {
+        $this->nom = $nom;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Panier.php b/Back_end/src/Entity/Panier.php
new file mode 100644
index 0000000..6dce9f8
--- /dev/null
+++ b/Back_end/src/Entity/Panier.php
@@ -0,0 +1,66 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\PanierRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: PanierRepository::class)]
+class Panier
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $nom = null;
+
+    #[ORM\Column(type: Types::BLOB, nullable: true)]
+    private $photo = null;
+
+    #[ORM\Column(type: Types::TEXT, nullable: true)]
+    private ?string $description = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getNom(): ?string
+    {
+        return $this->nom;
+    }
+
+    public function setNom(string $nom): static
+    {
+        $this->nom = $nom;
+
+        return $this;
+    }
+
+    public function getPhoto()
+    {
+        return $this->photo;
+    }
+
+    public function setPhoto($photo): static
+    {
+        $this->photo = $photo;
+
+        return $this;
+    }
+
+    public function getDescription(): ?string
+    {
+        return $this->description;
+    }
+
+    public function setDescription(?string $description): static
+    {
+        $this->description = $description;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/PointDeDepot.php b/Back_end/src/Entity/PointDeDepot.php
new file mode 100644
index 0000000..73d0617
--- /dev/null
+++ b/Back_end/src/Entity/PointDeDepot.php
@@ -0,0 +1,186 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\PointDeDepotRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: PointDeDepotRepository::class)]
+class PointDeDepot
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(length: 510)]
+    private ?string $adresse = null;
+
+    #[ORM\Column(length: 10)]
+    private ?string $codePostal = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $ville = null;
+
+    #[ORM\Column(length: 20)]
+    private ?string $telephone = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $nomReferent = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $mailReferent = null;
+
+    #[ORM\Column(length: 20)]
+    private ?string $telReferent = null;
+
+    #[ORM\Column(type: Types::TEXT, nullable: true)]
+    private ?string $presentation = null;
+
+    #[ORM\Column(type: Types::BLOB, nullable: true)]
+    private $photo = null;
+
+    #[ORM\Column(type: Types::TIME_MUTABLE)]
+    private ?\DateTimeInterface $creneauLivraison = null;
+
+    #[ORM\Column(type: Types::TIME_MUTABLE)]
+    private ?\DateTimeInterface $creneauRecupPanier = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getAdresse(): ?string
+    {
+        return $this->adresse;
+    }
+
+    public function setAdresse(string $adresse): static
+    {
+        $this->adresse = $adresse;
+
+        return $this;
+    }
+
+    public function getCodePostal(): ?string
+    {
+        return $this->codePostal;
+    }
+
+    public function setCodePostal(string $codePostal): static
+    {
+        $this->codePostal = $codePostal;
+
+        return $this;
+    }
+
+    public function getVille(): ?string
+    {
+        return $this->ville;
+    }
+
+    public function setVille(string $ville): static
+    {
+        $this->ville = $ville;
+
+        return $this;
+    }
+
+    public function getTelephone(): ?string
+    {
+        return $this->telephone;
+    }
+
+    public function setTelephone(string $telephone): static
+    {
+        $this->telephone = $telephone;
+
+        return $this;
+    }
+
+    public function getNomReferent(): ?string
+    {
+        return $this->nomReferent;
+    }
+
+    public function setNomReferent(string $nomReferent): static
+    {
+        $this->nomReferent = $nomReferent;
+
+        return $this;
+    }
+
+    public function getMailReferent(): ?string
+    {
+        return $this->mailReferent;
+    }
+
+    public function setMailReferent(string $mailReferent): static
+    {
+        $this->mailReferent = $mailReferent;
+
+        return $this;
+    }
+
+    public function getTelReferent(): ?string
+    {
+        return $this->telReferent;
+    }
+
+    public function setTelReferent(string $telReferent): static
+    {
+        $this->telReferent = $telReferent;
+
+        return $this;
+    }
+
+    public function getPresentation(): ?string
+    {
+        return $this->presentation;
+    }
+
+    public function setPresentation(?string $presentation): static
+    {
+        $this->presentation = $presentation;
+
+        return $this;
+    }
+
+    public function getPhoto()
+    {
+        return $this->photo;
+    }
+
+    public function setPhoto($photo): static
+    {
+        $this->photo = $photo;
+
+        return $this;
+    }
+
+    public function getCreneauLivraison(): ?\DateTimeInterface
+    {
+        return $this->creneauLivraison;
+    }
+
+    public function setCreneauLivraison(\DateTimeInterface $creneauLivraison): static
+    {
+        $this->creneauLivraison = $creneauLivraison;
+
+        return $this;
+    }
+
+    public function getCreneauRecupPanier(): ?\DateTimeInterface
+    {
+        return $this->creneauRecupPanier;
+    }
+
+    public function setCreneauRecupPanier(\DateTimeInterface $creneauRecupPanier): static
+    {
+        $this->creneauRecupPanier = $creneauRecupPanier;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Tournee.php b/Back_end/src/Entity/Tournee.php
new file mode 100644
index 0000000..3d1648c
--- /dev/null
+++ b/Back_end/src/Entity/Tournee.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\TourneeRepository;
+use Doctrine\DBAL\Types\Types;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: TourneeRepository::class)]
+class Tournee
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(type: Types::DATE_MUTABLE)]
+    private ?\DateTimeInterface $jourPreparation = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function getJourPreparation(): ?\DateTimeInterface
+    {
+        return $this->jourPreparation;
+    }
+
+    public function setJourPreparation(\DateTimeInterface $jourPreparation): static
+    {
+        $this->jourPreparation = $jourPreparation;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Entity/Unite.php b/Back_end/src/Entity/Unite.php
new file mode 100644
index 0000000..f5b9321
--- /dev/null
+++ b/Back_end/src/Entity/Unite.php
@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Entity;
+
+use App\Repository\UniteRepository;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity(repositoryClass: UniteRepository::class)]
+class Unite
+{
+    #[ORM\Id]
+    #[ORM\GeneratedValue]
+    #[ORM\Column]
+    private ?int $id = null;
+
+    #[ORM\Column(length: 255)]
+    private ?string $nom = null;
+
+    #[ORM\Column]
+    private ?int $nbDecimale = null;
+
+    public function getId(): ?int
+    {
+        return $this->id;
+    }
+
+    public function setId(?string $id): static
+    {
+        $this->id = $id;
+
+        return $this;
+    }
+
+    public function getNom(): ?string
+    {
+        return $this->nom;
+    }
+
+    public function setNom(string $nom): static
+    {
+        $this->nom = $nom;
+
+        return $this;
+    }
+
+    public function getNbDecimale(): ?int
+    {
+        return $this->nbDecimale;
+    }
+
+    public function setNbDecimale(int $nbDecimale): static
+    {
+        $this->nbDecimale = $nbDecimale;
+
+        return $this;
+    }
+}
diff --git a/Back_end/src/Repository/AbonnementRepository.php b/Back_end/src/Repository/AbonnementRepository.php
new file mode 100644
index 0000000..de8b3d6
--- /dev/null
+++ b/Back_end/src/Repository/AbonnementRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Abonnement;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Abonnement>
+ *
+ * @method Abonnement|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Abonnement|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Abonnement[]    findAll()
+ * @method Abonnement[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class AbonnementRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Abonnement::class);
+    }
+
+//    /**
+//     * @return Abonnement[] Returns an array of Abonnement objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('a')
+//            ->andWhere('a.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('a.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Abonnement
+//    {
+//        return $this->createQueryBuilder('a')
+//            ->andWhere('a.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/FrequenceTypeRepository.php b/Back_end/src/Repository/FrequenceTypeRepository.php
new file mode 100644
index 0000000..e0881e4
--- /dev/null
+++ b/Back_end/src/Repository/FrequenceTypeRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\FrequenceType;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<FrequenceType>
+ *
+ * @method FrequenceType|null find($id, $lockMode = null, $lockVersion = null)
+ * @method FrequenceType|null findOneBy(array $criteria, array $orderBy = null)
+ * @method FrequenceType[]    findAll()
+ * @method FrequenceType[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class FrequenceTypeRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, FrequenceType::class);
+    }
+
+//    /**
+//     * @return FrequenceType[] Returns an array of FrequenceType objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('f')
+//            ->andWhere('f.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('f.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?FrequenceType
+//    {
+//        return $this->createQueryBuilder('f')
+//            ->andWhere('f.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/PanierRepository.php b/Back_end/src/Repository/PanierRepository.php
new file mode 100644
index 0000000..6567f03
--- /dev/null
+++ b/Back_end/src/Repository/PanierRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Panier;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Panier>
+ *
+ * @method Panier|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Panier|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Panier[]    findAll()
+ * @method Panier[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class PanierRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Panier::class);
+    }
+
+//    /**
+//     * @return Panier[] Returns an array of Panier objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('p.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Panier
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/PointDeDepotRepository.php b/Back_end/src/Repository/PointDeDepotRepository.php
new file mode 100644
index 0000000..9ab1283
--- /dev/null
+++ b/Back_end/src/Repository/PointDeDepotRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\PointDeDepot;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<PointDeDepot>
+ *
+ * @method PointDeDepot|null find($id, $lockMode = null, $lockVersion = null)
+ * @method PointDeDepot|null findOneBy(array $criteria, array $orderBy = null)
+ * @method PointDeDepot[]    findAll()
+ * @method PointDeDepot[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class PointDeDepotRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, PointDeDepot::class);
+    }
+
+//    /**
+//     * @return PointDeDepot[] Returns an array of PointDeDepot objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('p.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?PointDeDepot
+//    {
+//        return $this->createQueryBuilder('p')
+//            ->andWhere('p.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/TourneeRepository.php b/Back_end/src/Repository/TourneeRepository.php
new file mode 100644
index 0000000..be1bc33
--- /dev/null
+++ b/Back_end/src/Repository/TourneeRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Tournee;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Tournee>
+ *
+ * @method Tournee|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Tournee|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Tournee[]    findAll()
+ * @method Tournee[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class TourneeRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Tournee::class);
+    }
+
+//    /**
+//     * @return Tournee[] Returns an array of Tournee objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('t')
+//            ->andWhere('t.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('t.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Tournee
+//    {
+//        return $this->createQueryBuilder('t')
+//            ->andWhere('t.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/Back_end/src/Repository/UniteRepository.php b/Back_end/src/Repository/UniteRepository.php
new file mode 100644
index 0000000..af22056
--- /dev/null
+++ b/Back_end/src/Repository/UniteRepository.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace App\Repository;
+
+use App\Entity\Unite;
+use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Persistence\ManagerRegistry;
+
+/**
+ * @extends ServiceEntityRepository<Unite>
+ *
+ * @method Unite|null find($id, $lockMode = null, $lockVersion = null)
+ * @method Unite|null findOneBy(array $criteria, array $orderBy = null)
+ * @method Unite[]    findAll()
+ * @method Unite[]    findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class UniteRepository extends ServiceEntityRepository
+{
+    public function __construct(ManagerRegistry $registry)
+    {
+        parent::__construct($registry, Unite::class);
+    }
+
+//    /**
+//     * @return Unite[] Returns an array of Unite objects
+//     */
+//    public function findByExampleField($value): array
+//    {
+//        return $this->createQueryBuilder('u')
+//            ->andWhere('u.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->orderBy('u.id', 'ASC')
+//            ->setMaxResults(10)
+//            ->getQuery()
+//            ->getResult()
+//        ;
+//    }
+
+//    public function findOneBySomeField($value): ?Unite
+//    {
+//        return $this->createQueryBuilder('u')
+//            ->andWhere('u.exampleField = :val')
+//            ->setParameter('val', $value)
+//            ->getQuery()
+//            ->getOneOrNullResult()
+//        ;
+//    }
+}
diff --git a/docker/php/Dockerfile b/docker/php/Dockerfile
index 5d56c46..52c0186 100644
--- a/docker/php/Dockerfile
+++ b/docker/php/Dockerfile
@@ -12,4 +12,6 @@ WORKDIR /var/www/symfony_docker
 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
 
 RUN curl -sS https://get.symfony.com/cli/installer | bash
-RUN mv /root/.symfony5/bin/symfony /usr/local/bin/symfony
\ No newline at end of file
+RUN mv /root/.symfony5/bin/symfony /usr/local/bin/symfony
+
+RUN composer install
\ No newline at end of file
-- 
GitLab