HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/dvpis2025/dvpis.kaunokolegija.lt/src/Entity/Lecturer.php
<?php

namespace App\Entity;

use App\Entity\Poll\AnswerRow;
use App\Entity\Poll\Summary;
use App\Repository\LecturerRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

#[ORM\Table(name: 'lecturer')]
#[ORM\Entity(repositoryClass: LecturerRepository::class)]
class Lecturer
{
    #[ORM\Column]
    #[ORM\Id]
    #[ORM\GeneratedValue]
    private ?int $id = null;

    /**
     * @var string
     */
    #[ORM\Column(name: 'name', type: 'string', length: 255)]
    private $name;

    /**
     * @var string
     */
    #[ORM\Column(name: 'surname', type: 'string', length: 255)]
    private $surname;

    /**
     * @var bool
     */
    #[ORM\Column(name: 'is_main_workplace', type: 'boolean')]
    private $isMainWorkplace;

    /**
     * @var float
     */
    #[ORM\Column(name: 'post_size', type: 'float', nullable: true)]
    private $postSize;

    /**
     * @var bool
     */
    #[ORM\Column(name: 'is_not_full_time', type: 'boolean')]
    private $isNotFullTime;

    /**
     * @var string
     */
    #[ORM\Column(name: 'scientific_degree', type: 'string', length: 255, nullable: true)]
    private $scientificDegree;

    #[ORM\Column(name: 'education', type: 'string', length: 255, nullable: true)]
    private ?string $education;

    #[ORM\Column(name: 'contract_from', type: 'date', nullable: true)]
    private $contractFrom;

    #[ORM\Column(name: 'contract_to', type: 'date', nullable: true)]
    private $contractTo;

    #[ORM\Column(name: 'notes', type: 'text', nullable: true)]
    private $notes;

    #[ORM\Column(name: 'email', type: 'string', length: 255)]
    private string $email;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerTeachingLanguage::class)]
    private Collection $lecturerTeachingLanguages;

    #[ORM\JoinColumn(name: 'lecturer_position_id', referencedColumnName: 'id', nullable: true)]
    #[ORM\ManyToOne(targetEntity: LecturerPosition::class, inversedBy: 'lecturers')]
    private ?LecturerPosition $lecturerPosition = null;

    #[ORM\JoinColumn(name: 'department_id', referencedColumnName: 'id', nullable: false)]
    #[ORM\ManyToOne(targetEntity: Department::class, inversedBy: 'lecturers')]
    private ?Department $department;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerPlan::class)]
    private Collection $lecturerPlans;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerApprovedActivities::class)]
    private Collection $lecturerApprovedActivities;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerPlanHistory::class)]
    private Collection $lecturerPlanHistorys;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerWorkTimePlan::class)]
    private Collection $lecturerWorkTimePlans;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: FinalProject::class)]
    private Collection $finalProjects;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: FinalProjectHistory::class)]
    private Collection $finalProjectsHistory;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: FinalEgzam::class)]
    private Collection $finalEgzams;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: AnswerRow::class)]
    private Collection $answerRows;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: Summary::class)]
    private Collection $summaries;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: FinalEgzamHistory::class)]
    private Collection $finalEgzamsHistory;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: TmmvLecturer::class)]
    private Collection $TmmvLecturers;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: MeovLecturer::class)]
    private Collection $MeovLecturers;

    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: KtvLecturer::class)]
    private Collection $KtvLecturers;

    /**
     * @var Collection<int, LecturerAgreement>
     */
    #[ORM\OneToMany(mappedBy: 'lecturer', targetEntity: LecturerAgreement::class)]
    private Collection $lecturerAgreements;

    #[ORM\ManyToOne(inversedBy: 'lecturers')]
    #[ORM\JoinColumn(name: 'field_of_study_id', referencedColumnName: 'id', nullable: true)]
    private ?FieldOfStudy $fieldOfStudy = null;

    #[ORM\Column(nullable: true)]
    private ?bool $isActive = null;

    #[ORM\Column(nullable: true)]
    private ?float $practical_work_experience = null;

    #[ORM\Column(type: Types::SMALLINT, nullable: true)]
    private ?int $five_years_experience_in_kauko = null;

    #[ORM\Column(type: Types::SMALLINT, nullable: true)]
    private ?int $work_agreement_outside_kauko = null;

    #[ORM\Column(type: Types::SMALLINT, nullable: true)]
    private ?int $weekend_work = null;

    #[ORM\Column(type: Types::SMALLINT, nullable: true)]
    private ?int $work_in_kauko_administration = null;

    public function __construct()
    {
        $this->TmmvLecturers = new ArrayCollection();
        $this->MeovLecturers = new ArrayCollection();
        $this->KtvLecturers = new ArrayCollection();
        $this->finalEgzams = new ArrayCollection();
        $this->finalProjects = new ArrayCollection();
        $this->finalEgzamsHistory = new ArrayCollection();
        $this->finalProjectsHistory = new ArrayCollection();
        $this->lecturerApprovedActivities = new ArrayCollection();
        $this->lecturerPlans = new ArrayCollection();
        $this->lecturerPlanHistorys = new ArrayCollection();
        $this->lecturerWorkTimePlans = new ArrayCollection();
        $this->lecturerTeachingLanguages = new ArrayCollection();
        $this->answerRows = new ArrayCollection();
        $this->summaries = new ArrayCollection();
        $this->lecturerAgreements = new ArrayCollection();
    }

    public function __toString()
    {
        return $this->surname . " " . $this->name . " (" . $this->department->getShortName() . ")";
    }

    /**
     * @return Collection<int, LecturerApprovedActivities>
     */
    public function getLecturerApprovedActivities(): Collection
    {
        return $this->lecturerApprovedActivities;
    }

    public function setLecturerApprovedActivities(ArrayCollection $lecturerApprovedActivities)
    {
        $this->lecturerApprovedActivities = $lecturerApprovedActivities;
    }

    /**
     * @return Collection<int, FinalEgzam>
     */
    public function getFinalEgzams(): Collection
    {
        return $this->finalEgzams;
    }

    /**
     * @return Collection<int, FinalEgzamHistory>
     */
    public function getFinalEgzamsHistory(): Collection
    {
        return $this->finalEgzamsHistory;
    }

    public function setFinalEgzams($finalEgzams)
    {
        $this->finalEgzams = $finalEgzams;
        return $this;
    }

    public function setFinalEgzamsHistory($finalEgzamsHistory)
    {
        $this->finalEgzamsHistory = $finalEgzamsHistory;
        return $this;
    }

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getName(): ?string
    {
        return $this->name;
    }

    public function getSurname(): ?string
    {
        return $this->surname;
    }

    public function getIsMainWorkplace()
    {
        return $this->isMainWorkplace;
    }

    public function getPostSize(): ?float
    {
        return $this->postSize;
    }

    public function getIsNotFullTime()
    {
        return $this->isNotFullTime;
    }

    public function getScientificDegree(): ?string
    {
        return $this->scientificDegree;
    }

    public function getEducation(): ?string
    {
        return $this->education;
    }

    public function getContractFrom(): ?\DateTimeInterface
    {
        return $this->contractFrom;
    }

    public function getContractTo(): ?\DateTimeInterface
    {
        return $this->contractTo;
    }

    public function getNotes(): ?string
    {
        return $this->notes;
    }

    public function getEmail(): ?string
    {
        return $this->email;
    }

    /**
     * @return Collection<int, LecturerTeachingLanguage>
     */
    public function getLecturerTeachingLanguages(): Collection
    {
        return $this->lecturerTeachingLanguages;
    }

    public function getLecturerPosition(): ?LecturerPosition
    {
        return $this->lecturerPosition;
    }

    public function getDepartment(): ?Department
    {
        return $this->department;
    }

    /**
     * @return Collection<int, LecturerPlan>
     */
    public function getLecturerPlans(): Collection
    {
        return $this->lecturerPlans;
    }

    /**
     * @return Collection<int, LecturerPlanHistory>
     */
    public function getLecturerPlanHistorys(): Collection
    {
        return $this->lecturerPlanHistorys;
    }

    public function setLecturerPlanHistorys($lecturerPlanHistorys)
    {
        $this->lecturerPlanHistorys = $lecturerPlanHistorys;
        return $this;
    }

    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    public function setName(string $name): static
    {
        $this->name = $name;

        return $this;
    }

    public function setSurname(string $surname): static
    {
        $this->surname = $surname;

        return $this;
    }

    public function setIsMainWorkplace($isMainWorkplace)
    {
        $this->isMainWorkplace = $isMainWorkplace;
        return $this;
    }

    public function setPostSize(?float $postSize): static
    {
        $this->postSize = $postSize;

        return $this;
    }

    public function setIsNotFullTime($isNotFullTime)
    {
        $this->isNotFullTime = $isNotFullTime;
        return $this;
    }

    public function setScientificDegree(?string $scientificDegree): static
    {
        $this->scientificDegree = $scientificDegree;

        return $this;
    }

    public function setEducation(?string $education): static
    {
        $this->education = $education;

        return $this;
    }

    public function setContractFrom(?\DateTimeInterface $contractFrom): static
    {
        $this->contractFrom = $contractFrom;

        return $this;
    }

    public function setContractTo(?\DateTimeInterface $contractTo): static
    {
        $this->contractTo = $contractTo;

        return $this;
    }

    public function setNotes(?string $notes): static
    {
        $this->notes = $notes;

        return $this;
    }

    public function setEmail(string $email): static
    {
        $this->email = $email;

        return $this;
    }

    public function setLecturerTeachingLanguages($lecturerTeachingLanguages)
    {
        $this->lecturerTeachingLanguages = $lecturerTeachingLanguages;
        return $this;
    }

    public function setLecturerPosition(?LecturerPosition $lecturerPosition): static
    {
        $this->lecturerPosition = $lecturerPosition;

        return $this;
    }

    public function setDepartment(?Department $department): static
    {
        $this->department = $department;

        return $this;
    }

    public function setLecturerPlans($lecturerPlans)
    {
        $this->lecturerPlans = $lecturerPlans;
        return $this;
    }

    /**
     * @return Collection<int, FinalProject>
     */
    public function getFinalProjects(): Collection
    {
        return $this->finalProjects;
    }

    public function setFinalProjects($finalProjects)
    {
        $this->finalProjects = $finalProjects;
        return $this;
    }

    /**
     * @return Collection<int, FinalProjectHistory>
     */
    public function getFinalProjectsHistory(): Collection
    {
        return $this->finalProjectsHistory;
    }

    public function setFinalProjectsHistory($finalProjectsHistory)
    {
        $this->finalProjectsHistory = $finalProjectsHistory;
        return $this;
    }

    /**
     * @return Collection<int, TmmvLecturer>
     */
    public function getTmmvLecturers(): Collection
    {
        return $this->TmmvLecturers;
    }

    /**
     * @return Collection<int, MeovLecturer>
     */
    public function getMeovLecturers(): Collection
    {
        return $this->MeovLecturers;
    }

    /**
     * @return Collection<int, KtvLecturer>
     */
    public function getKtvLecturers(): Collection
    {
        return $this->KtvLecturers;
    }

    public function setTmmvLecturers($TmmvLecturers)
    {
        $this->TmmvLecturers = $TmmvLecturers;
        return $this;
    }

    public function setMeovLecturers($MeovLecturers)
    {
        $this->MeovLecturers = $MeovLecturers;
        return $this;
    }

    public function setKtvLecturers($KtvLecturers)
    {
        $this->KtvLecturers = $KtvLecturers;
        return $this;
    }

    /**
     * @return Collection<int, LecturerWorkTimePlan>
     */
    public function getLecturerWorkTimePlans(): Collection
    {
        return $this->lecturerWorkTimePlans;
    }

    public function setLecturerWorkTimePlans($lecturerWorkTimePlans)
    {
        $this->lecturerWorkTimePlans = $lecturerWorkTimePlans;
        return $this;
    }

    /**
     * @return Collection<int, AnswerRow>
     */
    public function getAnswerRows(): Collection
    {
        return $this->answerRows;
    }

    public function setAnswerRows($answerRows)
    {
        $this->answerRows = $answerRows;
        return $this;
    }

    /**
     * @return Collection<int, Summary>
     */
    public function getSummaries(): Collection
    {
        return $this->summaries;
    }

    public function setSummaries($summaries)
    {
        $this->summaries = $summaries;
        return $this;
    }

    /**
     * @return Collection<int, ActivitiesPlan>
     */
    public function getActivitiesPlans(): Collection
    {
        return $this->activitiesPlans;
    }

    /**
     * @param ArrayCollection $activitiesPlans
     *
     * @return $this
     */
    public function setActivitiesPlans($activitiesPlans)
    {
        $this->activitiesPlans = $activitiesPlans;

        return $this;
    }

    /**
     * @return Collection<int, LecturerAgreement>
     */
    public function getLecturerAgreements(): Collection
    {
        return $this->lecturerAgreements;
    }

    public function addLecturerAgreement(LecturerAgreement $lecturerAgreement): static
    {
        if (!$this->lecturerAgreements->contains($lecturerAgreement)) {
            $this->lecturerAgreements->add($lecturerAgreement);
            $lecturerAgreement->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerAgreement(LecturerAgreement $lecturerAgreement): static
    {
        if ($this->lecturerAgreements->removeElement($lecturerAgreement)) {
            // set the owning side to null (unless already changed)
            if ($lecturerAgreement->getLecturer() === $this) {
                $lecturerAgreement->setLecturer(null);
            }
        }

        return $this;
    }

    public function isMainWorkplace(): ?bool
    {
        return $this->isMainWorkplace;
    }

    public function setMainWorkplace(bool $isMainWorkplace): static
    {
        $this->isMainWorkplace = $isMainWorkplace;

        return $this;
    }

    public function isNotFullTime(): ?bool
    {
        return $this->isNotFullTime;
    }

    public function setNotFullTime(bool $isNotFullTime): static
    {
        $this->isNotFullTime = $isNotFullTime;

        return $this;
    }

    public function addLecturerTeachingLanguage(LecturerTeachingLanguage $lecturerTeachingLanguage): static
    {
        if (!$this->lecturerTeachingLanguages->contains($lecturerTeachingLanguage)) {
            $this->lecturerTeachingLanguages->add($lecturerTeachingLanguage);
            $lecturerTeachingLanguage->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerTeachingLanguage(LecturerTeachingLanguage $lecturerTeachingLanguage): static
    {
        if ($this->lecturerTeachingLanguages->removeElement($lecturerTeachingLanguage)) {
            // set the owning side to null (unless already changed)
            if ($lecturerTeachingLanguage->getLecturer() === $this) {
                $lecturerTeachingLanguage->setLecturer(null);
            }
        }

        return $this;
    }

    public function addLecturerPlan(LecturerPlan $lecturerPlan): static
    {
        if (!$this->lecturerPlans->contains($lecturerPlan)) {
            $this->lecturerPlans->add($lecturerPlan);
            $lecturerPlan->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerPlan(LecturerPlan $lecturerPlan): static
    {
        if ($this->lecturerPlans->removeElement($lecturerPlan)) {
            // set the owning side to null (unless already changed)
            if ($lecturerPlan->getLecturer() === $this) {
                $lecturerPlan->setLecturer(null);
            }
        }

        return $this;
    }

    public function addLecturerApprovedActivity(LecturerApprovedActivities $lecturerApprovedActivity): static
    {
        if (!$this->lecturerApprovedActivities->contains($lecturerApprovedActivity)) {
            $this->lecturerApprovedActivities->add($lecturerApprovedActivity);
            $lecturerApprovedActivity->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerApprovedActivity(LecturerApprovedActivities $lecturerApprovedActivity): static
    {
        if ($this->lecturerApprovedActivities->removeElement($lecturerApprovedActivity)) {
            // set the owning side to null (unless already changed)
            if ($lecturerApprovedActivity->getLecturer() === $this) {
                $lecturerApprovedActivity->setLecturer(null);
            }
        }

        return $this;
    }

    public function addLecturerPlanHistory(LecturerPlanHistory $lecturerPlanHistory): static
    {
        if (!$this->lecturerPlanHistorys->contains($lecturerPlanHistory)) {
            $this->lecturerPlanHistorys->add($lecturerPlanHistory);
            $lecturerPlanHistory->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerPlanHistory(LecturerPlanHistory $lecturerPlanHistory): static
    {
        if ($this->lecturerPlanHistorys->removeElement($lecturerPlanHistory)) {
            // set the owning side to null (unless already changed)
            if ($lecturerPlanHistory->getLecturer() === $this) {
                $lecturerPlanHistory->setLecturer(null);
            }
        }

        return $this;
    }

    public function addLecturerWorkTimePlan(LecturerWorkTimePlan $lecturerWorkTimePlan): static
    {
        if (!$this->lecturerWorkTimePlans->contains($lecturerWorkTimePlan)) {
            $this->lecturerWorkTimePlans->add($lecturerWorkTimePlan);
            $lecturerWorkTimePlan->setLecturer($this);
        }

        return $this;
    }

    public function removeLecturerWorkTimePlan(LecturerWorkTimePlan $lecturerWorkTimePlan): static
    {
        if ($this->lecturerWorkTimePlans->removeElement($lecturerWorkTimePlan)) {
            // set the owning side to null (unless already changed)
            if ($lecturerWorkTimePlan->getLecturer() === $this) {
                $lecturerWorkTimePlan->setLecturer(null);
            }
        }

        return $this;
    }

    public function addFinalProject(FinalProject $finalProject): static
    {
        if (!$this->finalProjects->contains($finalProject)) {
            $this->finalProjects->add($finalProject);
            $finalProject->setLecturer($this);
        }

        return $this;
    }

    public function removeFinalProject(FinalProject $finalProject): static
    {
        if ($this->finalProjects->removeElement($finalProject)) {
            // set the owning side to null (unless already changed)
            if ($finalProject->getLecturer() === $this) {
                $finalProject->setLecturer(null);
            }
        }

        return $this;
    }

    public function addFinalProjectsHistory(FinalProjectHistory $finalProjectsHistory): static
    {
        if (!$this->finalProjectsHistory->contains($finalProjectsHistory)) {
            $this->finalProjectsHistory->add($finalProjectsHistory);
            $finalProjectsHistory->setLecturer($this);
        }

        return $this;
    }

    public function removeFinalProjectsHistory(FinalProjectHistory $finalProjectsHistory): static
    {
        if ($this->finalProjectsHistory->removeElement($finalProjectsHistory)) {
            // set the owning side to null (unless already changed)
            if ($finalProjectsHistory->getLecturer() === $this) {
                $finalProjectsHistory->setLecturer(null);
            }
        }

        return $this;
    }

    public function addFinalEgzam(FinalEgzam $finalEgzam): static
    {
        if (!$this->finalEgzams->contains($finalEgzam)) {
            $this->finalEgzams->add($finalEgzam);
            $finalEgzam->setLecturer($this);
        }

        return $this;
    }

    public function removeFinalEgzam(FinalEgzam $finalEgzam): static
    {
        if ($this->finalEgzams->removeElement($finalEgzam)) {
            // set the owning side to null (unless already changed)
            if ($finalEgzam->getLecturer() === $this) {
                $finalEgzam->setLecturer(null);
            }
        }

        return $this;
    }

    public function addAnswerRow(AnswerRow $answerRow): static
    {
        if (!$this->answerRows->contains($answerRow)) {
            $this->answerRows->add($answerRow);
            $answerRow->setLecturer($this);
        }

        return $this;
    }

    public function removeAnswerRow(AnswerRow $answerRow): static
    {
        if ($this->answerRows->removeElement($answerRow)) {
            // set the owning side to null (unless already changed)
            if ($answerRow->getLecturer() === $this) {
                $answerRow->setLecturer(null);
            }
        }

        return $this;
    }

    public function addSummary(Summary $summary): static
    {
        if (!$this->summaries->contains($summary)) {
            $this->summaries->add($summary);
            $summary->setLecturer($this);
        }

        return $this;
    }

    public function removeSummary(Summary $summary): static
    {
        if ($this->summaries->removeElement($summary)) {
            // set the owning side to null (unless already changed)
            if ($summary->getLecturer() === $this) {
                $summary->setLecturer(null);
            }
        }

        return $this;
    }

    public function addFinalEgzamsHistory(FinalEgzamHistory $finalEgzamsHistory): static
    {
        if (!$this->finalEgzamsHistory->contains($finalEgzamsHistory)) {
            $this->finalEgzamsHistory->add($finalEgzamsHistory);
            $finalEgzamsHistory->setLecturer($this);
        }

        return $this;
    }

    public function removeFinalEgzamsHistory(FinalEgzamHistory $finalEgzamsHistory): static
    {
        if ($this->finalEgzamsHistory->removeElement($finalEgzamsHistory)) {
            // set the owning side to null (unless already changed)
            if ($finalEgzamsHistory->getLecturer() === $this) {
                $finalEgzamsHistory->setLecturer(null);
            }
        }

        return $this;
    }

    public function addTmmvLecturer(TmmvLecturer $tmmvLecturer): static
    {
        if (!$this->TmmvLecturers->contains($tmmvLecturer)) {
            $this->TmmvLecturers->add($tmmvLecturer);
            $tmmvLecturer->setLecturer($this);
        }

        return $this;
    }

    public function removeTmmvLecturer(TmmvLecturer $tmmvLecturer): static
    {
        if ($this->TmmvLecturers->removeElement($tmmvLecturer)) {
            // set the owning side to null (unless already changed)
            if ($tmmvLecturer->getLecturer() === $this) {
                $tmmvLecturer->setLecturer(null);
            }
        }

        return $this;
    }

    public function addMeovLecturer(MeovLecturer $meovLecturer): static
    {
        if (!$this->MeovLecturers->contains($meovLecturer)) {
            $this->MeovLecturers->add($meovLecturer);
            $meovLecturer->setLecturer($this);
        }

        return $this;
    }

    public function removeMeovLecturer(MeovLecturer $meovLecturer): static
    {
        if ($this->MeovLecturers->removeElement($meovLecturer)) {
            // set the owning side to null (unless already changed)
            if ($meovLecturer->getLecturer() === $this) {
                $meovLecturer->setLecturer(null);
            }
        }

        return $this;
    }

    public function addKtvLecturer(KtvLecturer $ktvLecturer): static
    {
        if (!$this->KtvLecturers->contains($ktvLecturer)) {
            $this->KtvLecturers->add($ktvLecturer);
            $ktvLecturer->setLecturer($this);
        }

        return $this;
    }

    public function removeKtvLecturer(KtvLecturer $ktvLecturer): static
    {
        if ($this->KtvLecturers->removeElement($ktvLecturer)) {
            // set the owning side to null (unless already changed)
            if ($ktvLecturer->getLecturer() === $this) {
                $ktvLecturer->setLecturer(null);
            }
        }

        return $this;
    }

    public function addActivitiesPlan(ActivitiesPlan $activitiesPlan): static
    {
        if (!$this->activitiesPlans->contains($activitiesPlan)) {
            $this->activitiesPlans->add($activitiesPlan);
            $activitiesPlan->setLecturer($this);
        }

        return $this;
    }

    public function removeActivitiesPlan(ActivitiesPlan $activitiesPlan): static
    {
        if ($this->activitiesPlans->removeElement($activitiesPlan)) {
            // set the owning side to null (unless already changed)
            if ($activitiesPlan->getLecturer() === $this) {
                $activitiesPlan->setLecturer(null);
            }
        }

        return $this;
    }

    /**
     * @return Collection<int, FiveYearLecturerPlan>
     */
    public function getFiveYearLecturerPlans(): Collection
    {
        return $this->fiveYearLecturerPlans;
    }

    public function addFiveYearLecturerPlan(FiveYearLecturerPlan $fiveYearLecturerPlan): static
    {
        if (!$this->fiveYearLecturerPlans->contains($fiveYearLecturerPlan)) {
            $this->fiveYearLecturerPlans->add($fiveYearLecturerPlan);
            $fiveYearLecturerPlan->setLecturerAgreement($this);
        }

        return $this;
    }

    public function removeFiveYearLecturerPlan(FiveYearLecturerPlan $fiveYearLecturerPlan): static
    {
        if ($this->fiveYearLecturerPlans->removeElement($fiveYearLecturerPlan)) {
            // set the owning side to null (unless already changed)
            if ($fiveYearLecturerPlan->getLecturerAgreement() === $this) {
                $fiveYearLecturerPlan->setLecturerAgreement(null);
            }
        }

        return $this;
    }

    public function getFieldOfStudy(): ?FieldOfStudy
    {
        return $this->fieldOfStudy;
    }

    public function setFieldOfStudy(?FieldOfStudy $fieldOfStudy): static
    {
        $this->fieldOfStudy = $fieldOfStudy;

        return $this;
    }

    public function isActive(): ?bool
    {
        return $this->isActive;
    }

    public function setIsActive(?bool $isActive): static
    {
        $this->isActive = $isActive;

        return $this;
    }

    public function getPracticalWorkExperience(): ?float
    {
        return $this->practical_work_experience;
    }

    public function setPracticalWorkExperience(?float $practical_work_experience): static
    {
        $this->practical_work_experience = $practical_work_experience;

        return $this;
    }

    public function getFiveYearsExperienceInKauko(): ?int
    {
        return $this->five_years_experience_in_kauko;
    }

    public function setFiveYearsExperienceInKauko(?int $five_years_experience_in_kauko): static
    {
        $this->five_years_experience_in_kauko = $five_years_experience_in_kauko;

        return $this;
    }

    public function getWorkAgreementOutsideKauko(): ?int
    {
        return $this->work_agreement_outside_kauko;
    }

    public function setWorkAgreementOutsideKauko(?int $work_agreement_outside_kauko): static
    {
        $this->work_agreement_outside_kauko = $work_agreement_outside_kauko;

        return $this;
    }

    public function getWeekendWork(): ?int
    {
        return $this->weekend_work;
    }

    public function setWeekendWork(?int $weekend_work): static
    {
        $this->weekend_work = $weekend_work;

        return $this;
    }

    public function getWorkInKaukoAdministration(): ?int
    {
        return $this->work_in_kauko_administration;
    }

    public function setWorkInKaukoAdministration(?int $work_in_kauko_administration): static
    {
        $this->work_in_kauko_administration = $work_in_kauko_administration;

        return $this;
    }
}