<?php

class Enigme
{
    private string $idEnigme;
    private string $enonce;
    private string $aide;
    private string $admin;
    private string $rappel;
    private string $solution;
    private string $test;
    private int $tempsDeResolution;
    private int $points;

    /**
     * @param string $idEnigme
     * @param string $enonce
     * @param string $aide
     * @param string $rappel
     * @param string $solution
     * @param string $test
     * @param int $tempsDeResolution
     * @param int $points
     */
    public function __construct()
    {
        $arguments=func_get_args();
        $index=func_num_args();
        if(method_exists($this,$function='__construct'.$index));
            call_user_func(array(array($this,$function),$arguments));
    }

    public function __constructMulti(string $idEnigme, string $enonce, string $solution, string $test, int $tempsDeResolution,string $admin,int $points){
        $this->idEnigme=$idEnigme;
        $this->enonce=$enonce;
        $this->solution=$solution;
        $this->test=$test;
        $this->tempsDeResolution=$tempsDeResolution;
        $this->aide=NULL;
        $this->rappel=NULL;
        $this->admin=$admin;
        $this->points=$points;
    }

    public function __constructSolo(string $idEnigme, string $enonce, string $aide, string $rappel, string $solution, string $test,string $admin){
        $this->idEnigme=$idEnigme;
        $this->enonce=$enonce;
        $this->aide=$aide;
        $this->rappel=$rappel;
        $this->solution=$solution;
        $this->test=$test;
        $this->tempsDeResolution=0;
        $this->admin=$admin;
    }

    /**
     * @return string
     */
    public function getAdmin(): string
    {
        return $this->admin;
    }

    /**
     * @param string $admin
     */
    public function setAdmin(string $admin): void
    {
        $this->admin = $admin;
    }

    /**
     * @return string
     */
    public function getIdEnigme(): string
    {
        return $this->idEnigme;
    }

    /**
     * @param string $idEnigme
     */
    public function setIdEnigme(string $idEnigme): void
    {
        $this->idEnigme = $idEnigme;
    }

    /**
     * @return string
     */
    public function getEnonce(): string
    {
        return $this->enonce;
    }

    /**
     * @param string $enonce
     */
    public function setEnonce(string $enonce): void
    {
        $this->enonce = $enonce;
    }

    /**
     * @return string
     */
    public function getAide(): string
    {
        return $this->aide;
    }

    /**
     * @param string $aide
     */
    public function setAide(string $aide): void
    {
        $this->aide = $aide;
    }

    /**
     * @return string
     */
    public function getRappel(): string
    {
        return $this->rappel;
    }

    /**
     * @param string $rappel
     */
    public function setRappel(string $rappel): void
    {
        $this->rappel = $rappel;
    }

    /**
     * @return string
     */
    public function getSolution(): string
    {
        return $this->solution;
    }

    /**
     * @param string $solution
     */
    public function setSolution(string $solution): void
    {
        $this->solution = $solution;
    }

    /**
     * @return string
     */
    public function getTest(): string
    {
        return $this->test;
    }

    /**
     * @param string $test
     */
    public function setTest(string $test): void
    {
        $this->test = $test;
    }

    /**
     * @return int
     */
    public function getTempsDeResolution(): int
    {
        return $this->tempsDeResolution;
    }

    /**
     * @param int $tempsDeResolution
     */
    public function setTempsDeResolution(int $tempsDeResolution): void
    {
        $this->tempsDeResolution = $tempsDeResolution;
    }
    public function getPoints(): int
    {
        return $this->points;
    }
    public function setPoints(int $points): void
    {
        $this->points = $points;
    }
}