<?php
namespace App\Entity;
use App\Repository\ModificationActeSousTraitanceRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: ModificationActeSousTraitanceRepository::class)]
class ModificationActeSousTraitance
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column]
#[Assert\NotNull(message: "Le champ identification de modification de sous-traitance doit être renseigné.")]
private ?int $modificationActeSousTraitanceId = null;
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
private ?\DateTimeInterface $dateNotificationModificationActeSousTraitance = null;
#[ORM\Column(nullable: true)]
#[Assert\Type(type: 'integer', message: "La durée doit être un nombre entier.")]
#[Assert\GreaterThanOrEqual(value: 1, message: "La durée doit être d'au moins 1 mois.")]
private ?int $dureeMois = null;
#[ORM\Column(type: Types::DECIMAL, precision: 20, scale: 2, nullable: true)]
#[Assert\Type(type: 'numeric', message: "Le montant des modifications doit être un nombre décimal.")]
private ?string $montantSousTraitance = null;
#[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
#[Assert\Date]
private ?\DateTimeInterface $datePublicationDonneesModificationActeSousTraitance = null;
#[ORM\ManyToOne(inversedBy: 'modificationActeSousTraitance')]
#[ORM\JoinColumn(name: "marche_public_id", referencedColumnName: "id", nullable: true)]
private ?MarchePublic $marchePublic = null;
public function getId(): ?int
{
return $this->id;
}
public function getModificationActeSousTraitanceId(): ?int
{
return $this->modificationActeSousTraitanceId;
}
public function setModificationActeSousTraitanceId(int $modificationActeSousTraitanceId): static
{
$this->modificationActeSousTraitanceId = $modificationActeSousTraitanceId;
return $this;
}
public function getDateNotificationModificationActeSousTraitance(): ?\DateTimeInterface
{
return $this->dateNotificationModificationActeSousTraitance;
}
public function setDateNotificationModificationActeSousTraitance(\DateTimeInterface $dateNotificationModificationActeSousTraitance): static
{
$this->dateNotificationModificationActeSousTraitance = $dateNotificationModificationActeSousTraitance;
return $this;
}
public function getDureeMois(): ?int
{
return $this->dureeMois;
}
public function setDureeMois(?int $dureeMois): static
{
$this->dureeMois = $dureeMois;
return $this;
}
public function getMontantSousTraitance(): ?string
{
return $this->montantSousTraitance;
}
public function setMontantSousTraitance(?string $montantSousTraitance): static
{
$this->montantSousTraitance = $montantSousTraitance;
return $this;
}
public function getDatePublicationDonneesModificationActeSousTraitance(): ?\DateTimeInterface
{
return $this->datePublicationDonneesModificationActeSousTraitance;
}
public function setDatePublicationDonneesModificationActeSousTraitance(?\DateTimeInterface $datePublicationDonneesModificationActeSousTraitance): static
{
$this->datePublicationDonneesModificationActeSousTraitance = $datePublicationDonneesModificationActeSousTraitance;
return $this;
}
public function getMarchePublic(): ?MarchePublic
{
return $this->marchePublic;
}
public function setMarchePublic(?MarchePublic $marchePublic): static
{
$this->marchePublic = $marchePublic;
return $this;
}
}