<?php
namespace App\Entity\AssistantMaternel;
use \JsonSerializable;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
use App\Entity\Commun\DateNaissanceTrait;
/**
* @ORM\Entity(repositoryClass="App\Repository\AssistantMaternel\EnfantAssmatRepository")
* @ORM\Table(name="efc.gda_enfant_assmat", uniqueConstraints={@ORM\UniqueConstraint(name="enfant_un",columns={"id_assmat","date_naissance","num_ordre"})})
*/
class EnfantAssmat implements JsonSerializable
{
#region Attributs privés
// <editor-fold defaultstate="collapsed" desc="Attributs privés">
use DateNaissanceTrait;
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @Assert\NotNull()
* @ORM\ManyToOne(targetEntity="App\Entity\AssistantMaternel\AssistantMaternel", inversedBy="enfantsAssmat")
* @ORM\JoinColumn(name="id_assmat", referencedColumnName="id", nullable=false)
*/
private $assmat;
/**
* Indique le numéro d'ordre de l'enfant, sert à distinguer les jumeaux
* @ORM\Column(type="integer", length=100, nullable=false)
*/
private $numOrdre;
/**
* Indique si l'enfant est gardé par l'assmat (son parent)
* @ORM\Column(type="boolean", nullable=false, options={"default":true})
*/
private $estGarde;
// </editor-fold>
// <editor-fold desc="Accesseurs">
public function getId()
{
return $this->id;
}
/**
* Get assmat
*
* @return Assmat
*/
public function getAssmat()
{
return $this->assmat;
}
/**
* Set assmat
*
* @param Assmat $assmat
*
* @return EnfantAssmat
*/
public function setAssmat($assmat)
{
$this->assmat = $assmat;
return $this;
}
/**
* Get $estGarde
*
* @return boolean
*/
public function getEstGarde()
{
return $this->estGarde;
}
/**
* Set estGarde
*
* @param boolean $estGarde
*
* @return EnfantAssmat
*/
public function setEstGarde($estGarde)
{
$this->estGarde = $estGarde;
return $this;
}
// </editor-fold>
#endregion
#region Méthodes publiques
// <editor-fold desc="Méthodes publiques">
/**
* Constructor
*/
public function __construct()
{ }
/**
* Obtient une nouvelle instance de EnfantAssmat, initialisée à partir du tableau associatif fourni en paramètre
*
* @param array $data
* @return EnfantAssmat
*/
public static function createFromArray(array $data)
{
$newInstance = new EnfantAssmat();
return $newInstance->initFromArray($data);
}
/**
* mappe les propriétés sur l'instance à partir d'un tableau associatif
*
* @param array $data
* @return void
*/
public function initFromArray(array $data)
{
foreach ($data as $prop => $value) {
$this->{$prop} = $value;
}
return $this;
}
public function __toString()
{
return json_encode($this->jsonSerialize());
}
/*
* Implémentation de JsonSerializable
* Ne liste que les champs modifiables par les utilisateurs
*/
public function jsonSerialize()
{
return [
'id' => $this->id,
'estGarde' => $this->estGarde,
'numOrdre' => $this->numOrdre,
'idAssmat' => $this->assmat === null ? null : $this->assmat->getId()
];
}
// </editor-fold>
#endregion
}