AccompanyingPeriodWorkEvaluationDocument::class])] #[ORM\Entity] #[ORM\Table('chill_person_accompanying_period_work_evaluation_document')] class AccompanyingPeriodWorkEvaluationDocument implements \Chill\MainBundle\Doctrine\Model\TrackCreationInterface, \Chill\MainBundle\Doctrine\Model\TrackUpdateInterface { use TrackCreationTrait; use TrackUpdateTrait; #[ORM\ManyToOne(targetEntity: AccompanyingPeriodWorkEvaluation::class, inversedBy: 'documents')] private ?AccompanyingPeriodWorkEvaluation $accompanyingPeriodWorkEvaluation = null; /** * @internal the default name exceeds 64 characters, we must set manually: */ #[Serializer\Groups(['read', 'accompanying_period_work_evaluation:create'])] #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::INTEGER)] #[ORM\SequenceGenerator(sequenceName: 'chill_person_social_work_eval_doc_id_seq', allocationSize: 1, initialValue: 1000)] private ?int $id = null; /** * This is a workaround for client, to allow them to assign arbitrary data * dedicated to their job. * * This data is not persisted into database, but will appears on the data * normalized during the same request (like PUT/PATCH request) */ #[Serializer\Groups(['read', 'write', 'accompanying_period_work_evaluation:create'])] private $key; #[Serializer\Groups(['read', 'write', 'accompanying_period_work_evaluation:create'])] #[Assert\Valid] #[ORM\ManyToOne(targetEntity: StoredObject::class)] private ?StoredObject $storedObject = null; #[Serializer\Groups(['read', 'accompanying_period_work_evaluation:create'])] #[ORM\ManyToOne(targetEntity: DocGeneratorTemplate::class)] private ?DocGeneratorTemplate $template = null; #[Serializer\Groups(['read', 'write', 'accompanying_period_work_evaluation:create'])] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::TEXT, nullable: false, options: ['default' => ''])] private ?string $title = ''; public function getAccompanyingPeriodWorkEvaluation(): ?AccompanyingPeriodWorkEvaluation { return $this->accompanyingPeriodWorkEvaluation; } public function getId(): ?int { return $this->id; } public function getKey() { return $this->key; } public function getStoredObject(): ?StoredObject { return $this->storedObject; } public function getTemplate(): ?DocGeneratorTemplate { return $this->template; } public function getTitle(): ?string { return $this->title; } public function setAccompanyingPeriodWorkEvaluation(?AccompanyingPeriodWorkEvaluation $accompanyingPeriodWorkEvaluation): AccompanyingPeriodWorkEvaluationDocument { // if an evaluation is already associated, we cannot change the association (removing the association, // by setting a null value, is allowed. if ( $this->accompanyingPeriodWorkEvaluation instanceof AccompanyingPeriodWorkEvaluation && $accompanyingPeriodWorkEvaluation instanceof AccompanyingPeriodWorkEvaluation ) { if ($this->accompanyingPeriodWorkEvaluation !== $accompanyingPeriodWorkEvaluation) { throw new \RuntimeException('It is not allowed to change the evaluation for a document'); } } $this->accompanyingPeriodWorkEvaluation = $accompanyingPeriodWorkEvaluation; return $this; } /** * @return AccompanyingPeriodWorkEvaluationDocument */ public function setKey(mixed $key) { $this->key = $key; return $this; } public function setStoredObject(?StoredObject $storedObject): AccompanyingPeriodWorkEvaluationDocument { $this->storedObject = $storedObject; return $this; } public function setTemplate(?DocGeneratorTemplate $template): AccompanyingPeriodWorkEvaluationDocument { $this->template = $template; return $this; } public function setTitle(?string $title): AccompanyingPeriodWorkEvaluationDocument { $this->title = $title; return $this; } }