src/Entity/AssistantMaternel/EnfantAssmat.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity\AssistantMaternel;
  3. use \JsonSerializable;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Symfony\Component\Validator\Context\ExecutionContextInterface;
  7. use App\Entity\Commun\DateNaissanceTrait;
  8. /**
  9.  * @ORM\Entity(repositoryClass="App\Repository\AssistantMaternel\EnfantAssmatRepository")
  10.  * @ORM\Table(name="efc.gda_enfant_assmat", uniqueConstraints={@ORM\UniqueConstraint(name="enfant_un",columns={"id_assmat","date_naissance","num_ordre"})})
  11.  */
  12. class EnfantAssmat implements JsonSerializable
  13. {
  14. #region Attributs privés
  15.     // <editor-fold defaultstate="collapsed" desc="Attributs privés">
  16.     use DateNaissanceTrait;
  17.     /**
  18.      * @ORM\Column(type="integer")
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue(strategy="IDENTITY")
  21.      */
  22.     private $id;
  23.     /**
  24.      * @Assert\NotNull()
  25.      * @ORM\ManyToOne(targetEntity="App\Entity\AssistantMaternel\AssistantMaternel", inversedBy="enfantsAssmat")
  26.      * @ORM\JoinColumn(name="id_assmat", referencedColumnName="id", nullable=false)
  27.      */
  28.     private $assmat;
  29.     /**
  30.      * Indique le numéro d'ordre de l'enfant, sert à distinguer les jumeaux
  31.      * @ORM\Column(type="integer", length=100, nullable=false)
  32.      */
  33.     private $numOrdre;
  34.     /**
  35.      * Indique si l'enfant est gardé par l'assmat (son parent)
  36.      * @ORM\Column(type="boolean", nullable=false, options={"default":true})
  37.      */
  38.     private $estGarde;
  39.     // </editor-fold>
  40.     // <editor-fold desc="Accesseurs">
  41.     public function getId()
  42.     {
  43.         return $this->id;
  44.     }
  45.     /**
  46.      * Get assmat
  47.      *
  48.      * @return Assmat
  49.      */
  50.     public function getAssmat()
  51.     {
  52.         return $this->assmat;
  53.     }
  54.     /**
  55.      * Set assmat
  56.      *
  57.      * @param Assmat $assmat
  58.      * 
  59.      * @return EnfantAssmat
  60.      */
  61.     public function setAssmat($assmat)
  62.     {
  63.         $this->assmat $assmat;
  64.         return $this;
  65.     }
  66.     /**
  67.      * Get $estGarde
  68.      *
  69.      * @return boolean
  70.      */
  71.     public function getEstGarde()
  72.     {
  73.         return $this->estGarde;
  74.     }
  75.     /**
  76.      * Set estGarde
  77.      *
  78.      * @param boolean $estGarde
  79.      * 
  80.      * @return EnfantAssmat
  81.      */
  82.     public function setEstGarde($estGarde)
  83.     {
  84.         $this->estGarde $estGarde;
  85.         return $this;
  86.     }
  87.     // </editor-fold>
  88. #endregion
  89. #region Méthodes publiques
  90.     // <editor-fold desc="Méthodes publiques">
  91.     /**
  92.      * Constructor
  93.      */
  94.     public function __construct()
  95.     { }
  96.     /**
  97.      * Obtient une nouvelle instance de EnfantAssmat, initialisée à partir du tableau associatif fourni en paramètre
  98.      *
  99.      * @param array $data
  100.      * @return EnfantAssmat
  101.      */
  102.     public static function createFromArray(array $data)
  103.     {
  104.         $newInstance = new EnfantAssmat();
  105.         return $newInstance->initFromArray($data);
  106.     }
  107.     /**
  108.      * mappe les propriétés sur l'instance à partir d'un tableau associatif
  109.      *
  110.      * @param array $data
  111.      * @return void
  112.      */
  113.     public function initFromArray(array $data)
  114.     {
  115.         foreach ($data as $prop => $value) {
  116.             $this->{$prop} = $value;
  117.         }
  118.         return $this;
  119.     }
  120.     public function __toString()
  121.     {
  122.         return json_encode($this->jsonSerialize());
  123.     }
  124.     /*
  125.      * Implémentation de JsonSerializable
  126.      * Ne liste que les champs modifiables par les utilisateurs
  127.      */
  128.     public function jsonSerialize()
  129.     {
  130.         return [
  131.             'id' => $this->id,
  132.             'estGarde' => $this->estGarde,
  133.             'numOrdre' => $this->numOrdre,
  134.             'idAssmat' => $this->assmat === null null $this->assmat->getId()
  135.         ];
  136.     }
  137.     // </editor-fold>
  138. #endregion
  139. }