src/Entity/OffreAccueil/DispoPublicAssmat.php line 104

Open in your IDE?
  1. <?php
  2. namespace App\Entity\OffreAccueil;
  3. use App\Entity\AssistantMaternel\AssistantMaternel;
  4. use App\Entity\Referentiel\Periode;
  5. use App\Entity\Referentiel\TypeAccueil;
  6. use App\Entity\Referentiel\LieuAccueil;
  7. use App\Entity\Referentiel\TrancheAge;
  8. use App\Entity\Referentiel\JourSemaine;
  9. use App\Entity\Referentiel\TrancheHoraire;
  10. use App\Entity\Referentiel\FrequenceDispo;
  11. use \JsonSerializable;
  12. use Doctrine\ORM\Mapping as ORM;
  13. /**
  14.  * @ORM\Entity
  15.  * @ORM\Table(name="efc.oa_assmat_dispo_public", uniqueConstraints={
  16.  *     @ORM\UniqueConstraint(name="unicite_dispo_public_creneau", columns={
  17.  *         "id_assmat", "id_periode", "id_lieu_accueil", "id_type_accueil", "id_tranche_age", "id_jour_semaine", "id_tranche_horaire"
  18.  *     })
  19.  * })
  20.  */
  21. class DispoPublicAssmat implements JsonSerializable
  22. {
  23.     use \App\Entity\Commun\IdTrait;
  24.     /**
  25.      * @ORM\ManyToOne(targetEntity="App\Entity\AssistantMaternel\AssistantMaternel", inversedBy="dispos_public")
  26.      * @ORM\JoinColumn(name="id_assmat", referencedColumnName="id", nullable=false)
  27.      */
  28.     private $assmat;
  29.     use \App\Entity\Commun\Disponibilite\PeriodeTrait;
  30.     use \App\Entity\Commun\Disponibilite\LieuAccueilTrait;
  31.     use \App\Entity\Commun\Disponibilite\TypeAccueilTrait;
  32.     use \App\Entity\Commun\Disponibilite\TrancheAgeTrait;
  33.     use \App\Entity\Commun\Disponibilite\JourSemaineTrait;
  34.     use \App\Entity\Commun\Disponibilite\TrancheHoraireTrait;
  35.     use \App\Entity\Commun\Disponibilite\FrequenceDispoTrait;
  36.     use \App\Entity\Commun\Disponibilite\NombrePlacesLibresTrait;
  37.     use \App\Entity\Commun\Disponibilite\NombrePlacesTotalTrait;
  38.     use \App\Entity\Commun\DateCreationTrait;
  39.     use \App\Entity\Commun\DateModificationTrait;
  40.     /**
  41.      * Set assmat
  42.      *
  43.      * @param AssistantMaternel $assmat
  44.      *
  45.      * @return PlanningDispoPublic
  46.      */
  47.     public function setAssmat($assmat)
  48.     {
  49.         $this->assmat $assmat;
  50.         return $this;
  51.     }
  52.     /**
  53.      * Get assmat
  54.      *
  55.      * @return AssistantMaternel
  56.      */
  57.     public function getAssmat()
  58.     {
  59.         return $this->assmat;
  60.     }
  61.     /**
  62.      * Constructor
  63.      */
  64.     public function __construct(AssistantMaternel $assmatPeriode $periodeTypeAccueil $typeAccueil,
  65.             LieuAccueil $lieuAccueilTrancheAge $trancheAgeTrancheHoraire $trancheHoraireJourSemaine $jourSemaineFrequenceDispo $frequenceDispo)
  66.     {
  67.         $this->assmat $assmat;
  68.         $this->periode $periode;
  69.         $this->type_accueil $typeAccueil;
  70.         $this->lieu_accueil $lieuAccueil;
  71.         $this->tranche_age $trancheAge;
  72.         $this->tranche_horaire $trancheHoraire;
  73.         $this->jour_semaine $jourSemaine;
  74.         $this->frequence_dispo $frequenceDispo;
  75.         $this->nombre_places_libres 0;
  76.         $this->nombre_places_total 0;
  77.         $this->setDateCreation(new \DateTime());
  78.     }
  79.     /*
  80.      * Implémentation de JsonSerializable
  81.      * Ne liste que les champs modifiables par les utilisateurs
  82.      */
  83.     public function jsonSerialize()
  84.     {
  85.         return [
  86.             'j' => $this->jour_semaine->getId(),
  87.             'th' => $this->tranche_horaire->getId(),
  88.             'ta' => $this->tranche_age->getId(),
  89.             'f' => $this->frequence_dispo->getId(),
  90.             'nl' => $this->nombre_places_libres,
  91.             'nt' => $this->nombre_places_total
  92.         ];
  93.     }
  94. }