<?phpnamespace App\Entity;use App\Entity\ClassRoom;use App\Repository\InstallmentRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use App\Entity\Traits\Amount;use App\Entity\Traits\TimeStampable;/** * Tranche de scolarite * * @ORM\Table(name="installment") * @ORM\Entity(repositoryClass=InstallmentRepository::class) */class Installment{    use Amount;      /**     * @ORM\ManyToOne(targetEntity=PaymentPlan::class,inversedBy="installments")     * @ORM\JoinColumn(name="payment_plan_id", referencedColumnName="id", nullable=true)     */    private $paymentPlan;     /**     * @ORM\ManyToOne(targetEntity=ClassRoom::class)      * @ORM\JoinColumn(name="classRoom_id", referencedColumnName="id", nullable=true)     */    private $classRoom;    /**     * @var int     *     * @ORM\Column(name="id", type="integer")     * @ORM\Id     * @ORM\GeneratedValue(strategy="AUTO")     */    private $id;      /**     * @var int     *     * @ORM\Column(name="ranking", type="integer")     */    private $ranking;      /**     * @var \Datetime     *     * @ORM\Column(name="deadline", type="datetime", nullable=false)     */    protected $deadline;       public function getId(): ?int    {        return $this->id;    }       public function getRanking(): ?int    {        return $this->ranking;    }    public function setRanking(int $order): static    {        $this->ranking = $order;        if($this->getPaymentPlan()->getWeight() < $order){            $this->getPaymentPlan()->setWeight($order) ;        }        return $this;    }    public function getPaymentPlan(): ?PaymentPlan    {        return $this->paymentPlan;    }    public function setPaymentPlan(?PaymentPlan $paymentPlan): static    {        $this->paymentPlan = $paymentPlan;        return $this;    }    public function getDeadline(): ?\DateTimeInterface    {        return $this->deadline;    }    public function setDeadline(?\DateTimeInterface $deadline): static    {        $this->deadline = $deadline;        return $this;    }    public function getClassRoom(): ?ClassRoom    {        return $this->classRoom;    }    public function setClassRoom(?ClassRoom $classRoom): static    {        $this->classRoom = $classRoom;        return $this;    }    }