<?php

namespace App\Entity;

use App\Repository\ActivityPTARepository;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass=ActivityPTARepository::class)
 */
class ActivityPTA
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=1023)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=16, nullable=true)
     */
    private $code;

    /**
     * @ORM\ManyToOne(targetEntity=Costing::class, inversedBy="activities")
     * @ORM\JoinColumn(nullable=false)
     */
    private $costing;

    /**
     * @ORM\Column(type="bigint")
     */
    private $expectedCost;

    /**
     * @ORM\Column(type="integer")
     */
    private $year;

    /**
     * @ORM\ManyToOne(targetEntity=Ministry::class)
     * @ORM\JoinColumn(nullable=true)
     */
    private $ministry;

    /**
     * @ORM\ManyToOne(targetEntity=Commune::class)
     * @ORM\JoinColumn(nullable=true)
     */
    private $commune;

    /**
     * @ORM\Column(type="bigint", nullable=true)
     */
    private $realizedCost;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $achievement;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $constraints;

    /**
     * @ORM\Column(type="boolean", nullable=true)
     */
    private $executed;

    /**
     * @ORM\ManyToOne(targetEntity=Goal::class, inversedBy="activityPTAs")
     */
    private $goal;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $observations;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $factors;

    /**
     * @ORM\Column(type="string", length=10, nullable=true)
     */
    private $taux;

    /**
     * @ORM\Column(type="text", nullable=true)
     */
    private $achievement2;

    /**
     * @ORM\Column(type="boolean", nullable=true)
     */
    private $etat=null;

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

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

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

        return $this;
    }

    public function getCode(): ?string
    {
        return $this->code;
    }

    public function setCode(?string $code): self
    {
        $this->code = $code;

        return $this;
    }

    public function getCosting(): ?Costing
    {
        return $this->costing;
    }

    public function setCosting(?Costing $costing): self
    {
        $this->costing = $costing;

        return $this;
    }

    public function getExpectedCost(): ?string
    {
        return $this->expectedCost;
    }

    public function setExpectedCost(string $expectedCost): self
    {
        $this->expectedCost = $expectedCost;

        return $this;
    }

    public function getYear(): ?int
    {
        return $this->year;
    }

    public function setYear(int $year): self
    {
        $this->year = $year;

        return $this;
    }

    public function getMinistry(): ?Ministry
    {
        return $this->ministry;
    }

    public function setMinistry(?Ministry $ministry): self
    {
        $this->ministry = $ministry;

        return $this;
    }

    public function getCommune(): ?Commune
    {
        return $this->commune;
    }

    public function setCommune(?Commune $commune): self
    {
        $this->commune = $commune;

        return $this;
    }

    public function getRealizedCost(): ?string
    {
        return $this->realizedCost;
    }

    public function setRealizedCost(?string $realizedCost): self
    {
        $this->realizedCost = $realizedCost;

        return $this;
    }

    public function getAchievement(): ?string
    {
        return $this->achievement;
    }

    public function setAchievement(?string $achievement): self
    {
        $this->achievement = $achievement;

        return $this;
    }

    public function getConstraints(): ?string
    {
        return $this->constraints;
    }

    public function setConstraints(?string $constraints): self
    {
        $this->constraints = $constraints;

        return $this;
    }

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

    public function setExecuted(bool $executed): self
    {
        $this->executed = $executed;

        return $this;
    }

    public function getGoal(): ?Goal
    {
        return $this->goal;
    }

    public function setGoal(?Goal $goal): self
    {
        $this->goal = $goal;

        return $this;
    }

    public function getObservations(): ?string
    {
        return $this->observations;
    }

    public function setObservations(?string $observations): self
    {
        $this->observations = $observations;

        return $this;
    }

    public function getFactors(): ?string
    {
        return $this->factors;
    }

    public function setFactors(?string $factors): self
    {
        $this->factors = $factors;

        return $this;
    }

    public function getTaux(): ?string
    {
        return $this->taux;
    }

    public function setTaux(?string $taux): self
    {
        $this->taux = $taux;

        return $this;
    }

    public function getAchievement2(): ?string
    {
        return $this->achievement2;
    }

    public function setAchievement2(?string $achievement2): self
    {
        $this->achievement2 = $achievement2;

        return $this;
    }

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

    public function setEtat(bool $etat): self
    {
        $this->etat = $etat;

        return $this;
    }
}
