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/LecturerPlan.php
<?php

namespace App\Entity;

use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * LecturerPlan
 */
#[ORM\Table(name: 'lecturer_plan')]
#[ORM\Entity(repositoryClass: \App\Repository\LecturerPlanRepository::class)]
class LecturerPlan
{
    #[ORM\Column]
    #[ORM\Id]
    #[ORM\GeneratedValue]
    private ?int $id = null;

    /**
     * @var int
     */
    #[ORM\Column(name: 'student_count', type: 'integer')]
    private $studentCount;

    /**
     * @var int
     */
    #[ORM\Column(name: 'theory_hours', type: 'integer', nullable: true)]
    private $theoryHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'practic_group', type: 'integer', nullable: true)]
    private $practicGroup;

    /**
     * @var int
     */
    #[ORM\Column(name: 'practic_group1', type: 'integer', nullable: true)]
    private $practicGroup1;

    /**
     * @var int
     */
    #[ORM\Column(name: 'practic_group2', type: 'integer', nullable: true)]
    private $practicGroup2;

    /**
     * @var int
     */
    #[ORM\Column(name: 'consultation_hours', type: 'integer', nullable: true)]
    private $consultationHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'egzam_hours', type: 'integer', nullable: true)]
    private $egzamHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'score_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $scoreHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'prepare_contact_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $prepareContactHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'additional_consultation_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $additionalConsultationHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'studies_module_description_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $studiesModuleDescriptionHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'studies_module_preparation_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $studiesModulePreparationHours;

    /**
     * @var int
     */
    #[ORM\Column(name: 'studies_module_renew_hours', type: 'decimal', precision: 10, scale: 2, nullable: true)]
    private $studiesModuleRenewHours;

    /**
     * @var string
     */
    #[ORM\Column(name: 'description', type: 'text', nullable: true)]
    private $description;

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

    #[ORM\JoinColumn(name: 'lecturer_id', referencedColumnName: 'id', nullable: false)]
    #[ORM\ManyToOne(targetEntity: Lecturer::class, inversedBy: 'lecturerPlans')]
    private ?Lecturer $lecturer;

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

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

    #[ORM\JoinColumn(name: 'finance_source_id', referencedColumnName: 'id', nullable: true)]
    #[ORM\ManyToOne(targetEntity: FinanceSource::class, inversedBy: 'lecturerPlans')]
    private ?FinanceSource $lecturerFinance;

    /**
     * Many Groups have Many Users.
     */
    #[ORM\ManyToMany(targetEntity: \AcademicGroupPlan::class, mappedBy: 'lecturerPlans', cascade: ['persist'])]
    private $academicGroupPlans;

    public function __construct()
    {
        $this->academicGroupPlans = new ArrayCollection();
    }

    public function addAcademicGroupPlan(AcademicGroupPlan $academicGroupPlan): static
    {
        if (!$this->academicGroupPlans->contains($academicGroupPlan)) {
            $this->academicGroupPlans->add($academicGroupPlan);
            $academicGroupPlan->addLecturerPlan($this);
        }

        return $this;
    }

    public function removeAcademicGroupPlan(AcademicGroupPlan $academicGroupPlan): static
    {
        if ($this->academicGroupPlans->removeElement($academicGroupPlan)) {
            $academicGroupPlan->removeLecturerPlan($this);
        }

        return $this;
    }

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

    public function getStudentCount(): ?int
    {
        return $this->studentCount;
    }

    public function getTheoryHours(): ?int
    {
        return $this->theoryHours;
    }

    public function getPracticGroup(): ?int
    {
        return $this->practicGroup;
    }

    public function getPracticGroup1(): ?int
    {
        return $this->practicGroup1;
    }

    public function getPracticGroup2(): ?int
    {
        return $this->practicGroup2;
    }

    public function getConsultationHours(): ?int
    {
        return $this->consultationHours;
    }

    public function getEgzamHours(): ?int
    {
        return $this->egzamHours;
    }

    public function getScoreHours(): ?string
    {
        return $this->scoreHours;
    }

    public function getPrepareContactHours(): ?string
    {
        return $this->prepareContactHours;
    }

    public function getAdditionalConsultationHours(): ?string
    {
        return $this->additionalConsultationHours;
    }

    public function getDescription(): ?string
    {
        return $this->description;
    }

    public function getLecturer(): ?Lecturer
    {
        return $this->lecturer;
    }

    public function getLecturerDepartment(): ?Department
    {
        return $this->lecturerDepartment;
    }

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

    public function getLecturerFinance(): ?FinanceSource
    {
        return $this->lecturerFinance;
    }

    /**
     * @return Collection<int, AcademicGroupPlan>
     */
    public function getAcademicGroupPlans(): Collection
    {
        return $this->academicGroupPlans;
    }

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

    public function setStudentCount(int $studentCount): static
    {
        $this->studentCount = $studentCount;

        return $this;
    }

    public function setTheoryHours(?int $theoryHours): static
    {
        $this->theoryHours = $theoryHours;

        return $this;
    }

    public function setPracticGroup(?int $practicGroup): static
    {
        $this->practicGroup = $practicGroup;

        return $this;
    }

    public function setPracticGroup1(?int $practicGroup1): static
    {
        $this->practicGroup1 = $practicGroup1;

        return $this;
    }

    public function setPracticGroup2(?int $practicGroup2): static
    {
        $this->practicGroup2 = $practicGroup2;

        return $this;
    }

    public function setConsultationHours(?int $consultationHours): static
    {
        $this->consultationHours = $consultationHours;

        return $this;
    }

    public function setEgzamHours(?int $egzamHours): static
    {
        $this->egzamHours = $egzamHours;

        return $this;
    }

    public function setScoreHours(?string $scoreHours): static
    {
        $this->scoreHours = $scoreHours;

        return $this;
    }

    public function setPrepareContactHours(?string $prepareContactHours): static
    {
        $this->prepareContactHours = $prepareContactHours;

        return $this;
    }

    public function setAdditionalConsultationHours(?string $additionalConsultationHours): static
    {
        $this->additionalConsultationHours = $additionalConsultationHours;

        return $this;
    }

    public function setDescription(?string $description): static
    {
        $this->description = $description;

        return $this;
    }

    public function setLecturer(?Lecturer $lecturer): static
    {
        $this->lecturer = $lecturer;

        return $this;
    }

    public function setLecturerDepartment(?Department $lecturerDepartment): static
    {
        $this->lecturerDepartment = $lecturerDepartment;

        return $this;
    }

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

        return $this;
    }

    public function setLecturerFinance(?FinanceSource $lecturerFinance): static
    {
        $this->lecturerFinance = $lecturerFinance;

        return $this;
    }

    public function setAcademicGroupPlans($academicGroupPlans)
    {
        $this->academicGroupPlans = $academicGroupPlans;
        return $this;
    }

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

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

    public function getStudiesModuleDescriptionHours(): ?string
    {
        return $this->studiesModuleDescriptionHours;
    }

    public function setStudiesModuleDescriptionHours(?string $studiesModuleDescriptionHours): static
    {
        $this->studiesModuleDescriptionHours = $studiesModuleDescriptionHours;

        return $this;
    }

    public function getStudiesModulePreparationHours(): ?string
    {
        return $this->studiesModulePreparationHours;
    }

    public function setStudiesModulePreparationHours(?string $studiesModulePreparationHours): static
    {
        $this->studiesModulePreparationHours = $studiesModulePreparationHours;

        return $this;
    }

    public function getStudiesModuleRenewHours(): ?string
    {
        return $this->studiesModuleRenewHours;
    }

    public function setStudiesModuleRenewHours(?string $studiesModuleRenewHours): static
    {
        $this->studiesModuleRenewHours = $studiesModuleRenewHours;

        return $this;
    }

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

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

        return $this;
    }
}