<?php

namespace AppBundle\Entity\Organization;

use AppBundle\Entity\AccessAndFunction\Access;
use AppBundle\Entity\Person\CompanyPerson;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Dunglas\ApiBundle\Annotation\Iri;
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Validator\Constraints as Assert;
use AppBundle\Entity\Traits\TimestampableEntity;
use AppBundle\Entity\Traits\CreatorUpdaterEntity;
use AppBundle\Validator\Constraints\Parameter as OpentalentAssert;

/**
 * Paramètres généraux d'une organisation
 *
 * @Iri("http://schema.org/Parameters")
 */
#[ORM\Entity]
class Parameters
{
    use TimestampableEntity;
    use CreatorUpdaterEntity;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer')]
    #[ORM\Id]
    #[ORM\GeneratedValue(strategy: 'AUTO')]
    #[Groups(['parameters', 'network_list', 'federations_list', 'network_artist_school_list', 'organization_cotisation_steps', 'organization_create'])]
    private $id;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['parameters'])]
    private $financialDate;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['parameters'])]
    private $musicalDate;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['parameters'])]
    private $startCourseDate;
    /**
     * @var \DateTime
     */
    #[ORM\Column(type: 'date', nullable: true)]
    #[Assert\Date]
    #[Groups(['parameters'])]
    private $endCourseDate;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $trackingValidation = false;
    /**
     * @var int
     */
    #[ORM\Column(type: 'integer', options: ['default' => 20])]
    #[Assert\Type(type: 'integer', message: 'invalid-integer')]
    #[Assert\GreaterThanOrEqual(value: 0)]
    #[Assert\LessThanOrEqual(value: 100, message: 'lessThanOrEqual100')]
    #[Groups(['parameters'])]
    private $average = 20;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $editCriteriaNotationByAdminOnly = true;
    /**
     * @var string
     *
     * @OpentalentAssert\SmsSenderName
     */
    #[ORM\Column(type: 'string', length: 11, nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters'])]
    private $smsSenderName;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $logoDonorsMove = false;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', length: 60, nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters', 'network_list_parameters', 'federations_list_parameters', 'network_artist_school_list_parameters', 'organization_create_parameters'])]
    private $subDomain;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', length: 100, nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters', 'organization_cotisation_steps_parameters'])]
    private $website;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', length: 150, nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters', 'organization_cotisation_steps_parameters'])]
    private $otherWebsite;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $desactivateOpentalentSiteWeb = false;
    /**
     * @var ArrayCollection<Access>
     */
    #[ORM\OneToMany(targetEntity: 'AppBundle\Entity\AccessAndFunction\Access', mappedBy: 'publicationDirector')]
    #[Groups(['parameters'])]
    private $publicationDirectors;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Organization\BulletinPeriodEnum', 'toArray'])]
    #[Groups(['parameters'])]
    private $bulletinPeriod;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinWithTeacher = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinPrintAddress = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinSignatureDirector = true;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinDisplayLevelAcquired = true;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinShowEducationWithoutEvaluation = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinViewTestResults = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinShowAbsences = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinShowAverages = true;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Organization\BulletinOutputEnum', 'toArray'])]
    #[Groups(['parameters'])]
    private $bulletinOutput;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters'])]
    private $usernameSMS;
    /**
     * @var string
     * @OpentalentAssert\PasswordSms
     */
    #[ORM\Column(type: 'string', nullable: true)]
    #[Assert\Type(type: 'string')]
    #[Groups(['parameters'])]
    private $passwordSMS;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $bulletinEditWithoutEvaluation = true;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true, options: ['default' => 'STUDENTS_AND_THEIR_GUARDIANS'])]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Organization\SendToBulletinEnum', 'toArray'])]
    #[Groups(['parameters'])]
    private $bulletinReceiver = "STUDENTS_AND_THEIR_GUARDIANS";
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => true])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $showAdherentList = true;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $studentsAreAdherents = false;
    /**
     * @Iri("https://schema.org/image")
     */
    #[ORM\OneToOne(targetEntity: 'AppBundle\Entity\Core\File', inversedBy: 'qrCode', cascade: ['persist'], fetch: 'EAGER')]
    #[ORM\JoinColumn(referencedColumnName: 'id', nullable: true, onDelete: 'SET NULL')]
    #[Groups(['parameters'])]
    private $qrCode;
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true, options: ['default' => 'Europe/Paris'])]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Core\TimeZoneEnum', 'toArrayCustom'])]
    #[Groups(['parameters'])]
    private $timezone = "Europe/Paris";
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', options: ['default' => 'ANNUAL'])]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Education\PeriodicityEnum', 'toArray'])]
    #[Groups(['parameters'])]
    private $educationPeriodicity = 'ANNUAL';
    /**
     * @var string
     */
    #[ORM\Column(type: 'string', nullable: true, options: ['default' => 'BY_EDUCATION'])]
    #[Assert\Type(type: 'string')]
    #[Assert\Choice(callback: ['\AppBundle\Enum\Education\AdvancedEducationNotationTypeEnum', 'toArray'])]
    #[Groups(['parameters'])]
    private $advancedEducationNotationType = 'BY_EDUCATION';
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $sendAttendanceEmail = false;
    /**
     * @var bool
     */
    #[ORM\Column(type: 'boolean', options: ['default' => false])]
    #[Assert\Type(type: 'boolean')]
    #[Assert\NotNull]
    #[Groups(['parameters'])]
    private $sendAttendanceSms = false;
    public function __construct()
    {
        $this->publicationDirectors = new ArrayCollection();
    }
    /**
     * Sets id.
     *
     * @param int $id
     *
     * @return $this
     */
    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }
    /**
     * Gets id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Sets financialDate.
     *
     * @param \DateTime $financialDate
     *
     * @return $this
     */
    public function setFinancialDate(\DateTime $financialDate = null)
    {
        $this->financialDate = $financialDate;

        return $this;
    }
    /**
     * Gets financialDate.
     *
     * @return \DateTime
     */
    public function getFinancialDate()
    {
        return $this->financialDate;
    }
    /**
     * Sets musicalDate.
     *
     * @param \DateTime $musicalDate
     *
     * @return $this
     */
    public function setMusicalDate(\DateTime $musicalDate = null)
    {
        $this->musicalDate = $musicalDate;

        return $this;
    }
    /**
     * Gets musicalDate.
     *
     * @return \DateTime
     */
    public function getMusicalDate()
    {
        return $this->musicalDate;
    }
    /**
     * Sets trackingValidation.
     *
     * @param bool $trackingValidation
     *
     * @return $this
     */
    public function setTrackingValidation($trackingValidation)
    {
        $this->trackingValidation = $trackingValidation;

        return $this;
    }
    /**
     * Gets trackingValidation.
     *
     * @return bool
     */
    public function getTrackingValidation()
    {
        return $this->trackingValidation;
    }
    /**
     * Sets smsSenderName.
     *
     * @param string $smsSenderName
     *
     * @return $this
     */
    public function setSmsSenderName($smsSenderName)
    {
        $this->smsSenderName = $smsSenderName;

        return $this;
    }
    /**
     * Gets smsSenderName.
     *
     * @return string
     */
    public function getSmsSenderName()
    {
        return $this->smsSenderName;
    }
    /**
     * Sets logoDonorsMove.
     *
     * @param bool $logoDonorsMove
     *
     * @return $this
     */
    public function setLogoDonorsMove($logoDonorsMove)
    {
        $this->logoDonorsMove = $logoDonorsMove;

        return $this;
    }
    /**
     * Gets logoDonorsMove.
     *
     * @return bool
     */
    public function getLogoDonorsMove()
    {
        return $this->logoDonorsMove;
    }
    /**
     * Sets subDomain.
     *
     * @param string $subDomain
     *
     * @return $this
     */
    public function setSubDomain($subDomain)
    {
        $this->subDomain = $subDomain;

        return $this;
    }
    /**
     * Gets subDomain.
     *
     * @return string
     */
    public function getSubDomain()
    {
        return $this->subDomain;
    }
    /**
     * Sets website.
     *
     * @param string $website
     *
     * @return $this
     */
    public function setWebsite($website)
    {
        $this->website = $website;

        return $this;
    }
    /**
     * Gets website.
     *
     * @return string
     */
    public function getWebsite()
    {
        return $this->website;
    }
    /**
     * Sets otherWebsite.
     *
     * @param string $otherWebsite
     *
     * @return $this
     */
    public function setOtherWebsite($otherWebsite)
    {
        $this->otherWebsite = $otherWebsite;

        return $this;
    }
    /**
     * Gets otherWebsite.
     *
     * @return string
     */
    public function getOtherWebsite()
    {
        return $this->otherWebsite;
    }
    /**
     * Sets DesactivateOpentalentSiteWeb.
     *
     * @param bool $desactivateOpentalentSiteWeb
     *
     * @return $this
     */
    public function setDesactivateOpentalentSiteWeb($desactivateOpentalentSiteWeb)
    {
        $this->desactivateOpentalentSiteWeb = $desactivateOpentalentSiteWeb;

        return $this;
    }
    /**
     * Gets DesactivateOpentalentSiteWeb.
     *
     * @return bool
     */
    public function getDesactivateOpentalentSiteWeb()
    {
        return $this->desactivateOpentalentSiteWeb;
    }
    /**
     * @param Access $access
     * @return $this
     */
    public function addPublicationDirector(Access $access)
    {
        $access->setPublicationDirector($this);
        $this->publicationDirectors[] = $access;
        return $this;
    }
    /**
     * Remove publicationDirector
     *
     * @param Access $access
     */
    public function removePublicationDirector(Access $access)
    {
        $access->setPublicationDirector(null);
        $this->publicationDirectors->removeElement($access);
    }
    /**
     * Get publicationDirectors
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getPublicationDirectors()
    {
        return $this->publicationDirectors;
    }
    /**
     * Gets bulletinPeriod
     * 
     * @return string
     */
    public function getBulletinPeriod() {
        return $this->bulletinPeriod;
    }
    /**
     * Gets bulletinWithTeacher
     * 
     * @return bool
     */
    public function getBulletinWithTeacher() {
        return $this->bulletinWithTeacher;
    }
    /**
     * Gets bulletinPrintAddress
     * 
     * @return bool
     */
    public function getBulletinPrintAddress() {
        return $this->bulletinPrintAddress;
    }
    /**
     * Gets bulletinSignatureDirector
     * 
     * @return bool
     */
    public function getBulletinSignatureDirector() {
        return $this->bulletinSignatureDirector;
    }
    /**
     * Gets bulletinDisplayLevelAcquired
     * 
     * @return bool
     */
    public function getBulletinDisplayLevelAcquired() {
        return $this->bulletinDisplayLevelAcquired;
    }
    /**
     * Gets bulletinShowEducationWithoutEvaluation
     * 
     * @return bool
     */
    public function getBulletinShowEducationWithoutEvaluation() {
        return $this->bulletinShowEducationWithoutEvaluation;
    }
    /**
     * Gets bulletinViewTestResults
     * 
     * @return bool
     */
    public function getBulletinViewTestResults() {
        return $this->bulletinViewTestResults;
    }
    /**
     * Gets bulletinShowAbsences
     * 
     * @return bool
     */
    public function getBulletinShowAbsences() {
        return $this->bulletinShowAbsences;
    }
    /**
     * Sets bulletinPeriod
     * 
     * @param bool $bulletinPeriod
     * @return $this
     */
    public function setBulletinPeriod($bulletinPeriod) {
        $this->bulletinPeriod = $bulletinPeriod;
        return $this;
    }
    /**
     * Sets bulletinWithTeacher
     * 
     * @param bool $bulletinWithTeacher
     * @return $this
     */
    public function setBulletinWithTeacher($bulletinWithTeacher) {
        $this->bulletinWithTeacher = $bulletinWithTeacher;
        return $this;
    }
    /**
     * Sets bulletinPrintAddress
     * 
     * @param bool $bulletinPrintAddress
     * @return $this
     */
    public function setBulletinPrintAddress($bulletinPrintAddress) {
        $this->bulletinPrintAddress = $bulletinPrintAddress;
        return $this;
    }
    /**
     * Sets bulletinSignatureDirector
     * 
     * @param bool $bulletinSignatureDirector
     * @return $this
     */
    public function setBulletinSignatureDirector($bulletinSignatureDirector) {
        $this->bulletinSignatureDirector = $bulletinSignatureDirector;
        return $this;
    }
    /**
     * Sets bulletinDisplayLevelAcquired
     * 
     * @param bool $bulletinDisplayLevelAcquired
     * @return $this
     */
    public function setBulletinDisplayLevelAcquired($bulletinDisplayLevelAcquired) {
        $this->bulletinDisplayLevelAcquired = $bulletinDisplayLevelAcquired;
        return $this;
    }
    /**
     * Sets bulletinShowEducationWithoutEvaluation
     * 
     * @param bool $bulletinShowEducationWithoutEvaluation
     * @return $this
     */
    public function setBulletinShowEducationWithoutEvaluation($bulletinShowEducationWithoutEvaluation) {
        $this->bulletinShowEducationWithoutEvaluation = $bulletinShowEducationWithoutEvaluation;
        return $this;
    }
    /**
     * Sets bulletinViewTestResults
     * 
     * @param bool $bulletinViewTestResults
     * @return $this
     */
    public function setBulletinViewTestResults($bulletinViewTestResults) {
        $this->bulletinViewTestResults = $bulletinViewTestResults;
        return $this;
    }
    /**
     * Sets bulletinShowAbsences
     * 
     * @param bool $bulletinShowAbsences
     * @return $this
     */
    public function setBulletinShowAbsences($bulletinShowAbsences) {
        $this->bulletinShowAbsences = $bulletinShowAbsences;
        return $this;
    }
    /**
     * Gets bulletinOutput
     * 
     * @return string
     */
    public function getBulletinOutput() {
        return $this->bulletinOutput;
    }
    /**
     * Sets bulletinOutput
     * 
     * @param string $bulletinOutput
     * @return $this
     */
    public function setBulletinOutput($bulletinOutput) {
        $this->bulletinOutput = $bulletinOutput;
        return $this;
    }
    /**
     * @return int
     */
    public function getAverage()
    {
        return $this->average;
    }
    /**
     * @param int $average
     */
    public function setAverage($average)
    {
        $this->average = $average;
    }
    /**
     * Gets username SMS provider
     * 
     * @return string
     */
    public function getUsernameSMS() {
        return $this->usernameSMS;
    }
    /**
     * Sets username SMS provider
     * 
     * @param string $usernameSMS
     * @return $this
     */
    public function setUsernameSMS($usernameSMS) {
        $this->usernameSMS = $usernameSMS;
        return $this;
    }
    /**
     * Gets password SMS provider
     * 
     * @return string
     */
    public function getPasswordSMS() {
        return $this->passwordSMS;
    }
    /**
     * Sets password SMS provider
     * 
     * @param string $passwordSMS
     * @return $this
     */
    public function setPasswordSMS($passwordSMS) {
        $this->passwordSMS = $passwordSMS;
        return $this;
    }
    /**
     * Set bulletinEditWithoutEvaluation
     *
     * @param boolean $bulletinEditWithoutEvaluation
     *
     * @return Parameters
     */
    public function setBulletinEditWithoutEvaluation($bulletinEditWithoutEvaluation)
    {
        $this->bulletinEditWithoutEvaluation = $bulletinEditWithoutEvaluation;

        return $this;
    }
    /**
     * Get bulletinEditWithoutEvaluation
     *
     * @return boolean
     */
    public function getBulletinEditWithoutEvaluation()
    {
        return $this->bulletinEditWithoutEvaluation;
    }
    /**
     * Set bulletinReceiver
     *
     * @param string $bulletinReceiver
     *
     * @return Parameters
     */
    public function setBulletinReceiver($bulletinReceiver)
    {
        $this->bulletinReceiver = $bulletinReceiver;

        return $this;
    }
    /**
     * Get bulletinReceiver
     *
     * @return string
     */
    public function getBulletinReceiver()
    {
        return $this->bulletinReceiver;
    }
    /**
     * Set showAdherentList
     *
     * @param boolean $showAdherentList
     *
     * @return Parameters
     */
    public function setShowAdherentList($showAdherentList)
    {
        $this->showAdherentList = $showAdherentList;

        return $this;
    }
    /**
     * Get showAdherentList
     *
     * @return boolean
     */
    public function getShowAdherentList()
    {
        return $this->showAdherentList;
    }
    /**
     * Set editCriteriaNotationByAdminOnly
     *
     * @param boolean $editCriteriaNotationByAdminOnly
     *
     * @return Parameters
     */
    public function setEditCriteriaNotationByAdminOnly($editCriteriaNotationByAdminOnly)
    {
        $this->editCriteriaNotationByAdminOnly = $editCriteriaNotationByAdminOnly;

        return $this;
    }
    /**
     * Get editCriteriaNotationByAdminOnly
     *
     * @return boolean
     */
    public function getEditCriteriaNotationByAdminOnly()
    {
        return $this->editCriteriaNotationByAdminOnly;
    }
    /**
     * @return mixed
     */
    public function getQrCode()
    {
        return $this->qrCode;
    }
    /**
     * @param mixed $qrCode
     */
    public function setQrCode($qrCode)
    {
        $this->qrCode = $qrCode;
    }
    /**
     * Set studentsAreAdherents
     *
     * @param boolean $studentsAreAdherents
     *
     * @return Parameters
     */
    public function setStudentsAreAdherents($studentsAreAdherents)
    {
        $this->studentsAreAdherents = $studentsAreAdherents;

        return $this;
    }
    /**
     * Get studentsAreAdherents
     *
     * @return boolean
     */
    public function getStudentsAreAdherents()
    {
        return $this->studentsAreAdherents;
    }
    /**
     * @return \DateTime
     */
    public function getStartCourseDate()
    {
        return $this->startCourseDate;
    }
    /**
     * @param \DateTime $startCourseDate
     */
    public function setStartCourseDate(\DateTime $startCourseDate = null)
    {
        $this->startCourseDate = $startCourseDate;
    }
    /**
     * @return \DateTime
     */
    public function getEndCourseDate()
    {
        return $this->endCourseDate;
    }
    /**
     * @param \DateTime $endCourseDate
     */
    public function setEndCourseDate(\DateTime $endCourseDate=null)
    {
        $this->endCourseDate = $endCourseDate;
    }
    /**
     * @return string
     */
    public function getTimezone()
    {
        return $this->timezone;
    }
    /**
     * @param string $timezone
     */
    public function setTimezone(string $timezone)
    {
        $this->timezone = $timezone;
    }
    /**
     * Set bulletinShowAverages
     *
     * @param boolean $bulletinShowAverages
     *
     * @return Parameters
     */
    public function setBulletinShowAverages($bulletinShowAverages)
    {
        $this->bulletinShowAverages = $bulletinShowAverages;

        return $this;
    }
    /**
     * Get bulletinShowAverages
     *
     * @return boolean
     */
    public function getBulletinShowAverages()
    {
        return $this->bulletinShowAverages;
    }
    /**
     * Set educationPeriodicity
     *
     * @param string $educationPeriodicity
     *
     * @return Parameters
     */
    public function setEducationPeriodicity($educationPeriodicity)
    {
        $this->educationPeriodicity = $educationPeriodicity;

        return $this;
    }
    /**
     * Get educationPeriodicity
     *
     * @return string
     */
    public function getEducationPeriodicity()
    {
        return $this->educationPeriodicity;
    }
    /**
     * Set advancedEducationNotationType
     *
     * @param string $advancedEducationNotationType
     *
     * @return Parameters
     */
    public function setAdvancedEducationNotationType($advancedEducationNotationType)
    {
        $this->advancedEducationNotationType = $advancedEducationNotationType;

        return $this;
    }
    /**
     * Get advancedEducationNotationType
     *
     * @return string
     */
    public function getAdvancedEducationNotationType()
    {
        return $this->advancedEducationNotationType;
    }
    /**
     * Sets sendAttendanceEmail.
     *
     * @param bool $sendAttendanceEmail
     *
     * @return $this
     */
    public function setSendAttendanceEmail($sendAttendanceEmail)
    {
        $this->sendAttendanceEmail = $sendAttendanceEmail;

        return $this;
    }
    /**
     * Gets sendAttendanceEmail.
     *
     * @return bool
     */
    public function getSendAttendanceEmail()
    {
        return $this->sendAttendanceEmail;
    }
    /**
     * Sets sendAttendanceSms.
     *
     * @param bool $sendAttendanceSms
     *
     * @return $this
     */
    public function setSendAttendanceSms($sendAttendanceSms)
    {
        $this->sendAttendanceSms = $sendAttendanceSms;

        return $this;
    }
    /**
     * Gets sendAttendanceSms.
     *
     * @return bool
     */
    public function getSendAttendanceSms()
    {
        return $this->sendAttendanceSms;
    }
}
