<?php

/**
 * This is automatically generated file using the Codific Prototizer
 * PHP version 8
 * @category PHP
 * @package  Admin
 * @author   CODIFIC <info@codific.com>
 * @link     http://codific.com
 */

declare(strict_types=1);

namespace App\Entity;

use App\Entity\Abstraction\AbstractEntity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\MaxDepth;
use Symfony\Component\Serializer\Annotation\Ignore;

// #BlockStart number=304 id=_#_0

// #BlockEnd number=304


#[ORM\Table(name: "`maturity_level_remark`")]
#[ORM\Entity(repositoryClass: "App\Repository\MaturityLevelRemarkRepository")]
#[ORM\HasLifecycleCallbacks]
class MaturityLevelRemark extends AbstractEntity
{
    #[ORM\ManyToOne(targetEntity: MaturityLevel::class, cascade: ["persist"], fetch: "LAZY")]
    #[ORM\JoinColumn(onDelete: "SET NULL")]
    private MaturityLevel $maturityLevel;

    #[ORM\ManyToOne(targetEntity: Remark::class, cascade: ["persist"], inversedBy: "remarkMaturityLevelRemarks", fetch: "LAZY")]
    #[ORM\JoinColumn(onDelete: "SET NULL")]
    private Remark $remark;

    /**
     * Set maturityLevel
     */
    public function setMaturityLevel(MaturityLevel $maturityLevel): MaturityLevelRemark
    {
        $this->maturityLevel = $maturityLevel;
        return $this;
    }

    /**
     * Get maturityLevel
     * @return MaturityLevel|null
     */
    public function getMaturityLevel(): ?MaturityLevel
    {
        return $this->maturityLevel;
    }

    /**
     * Set remark
     */
    public function setRemark(Remark $remark): MaturityLevelRemark
    {
        $this->remark = $remark;
        return $this;
    }

    /**
     * Get remark
     * @return Remark|null
     */
    public function getRemark(): ?Remark
    {
        return $this->remark;
    }

    #[Ignore]
    public static array $manyToManyProperties = [];
    
    #[Ignore]
    public static array $childProperties = [
    ];

     /**
     * This method is a copy constructor that will return a copy object (except for the id field)
     * Note that this method will not save the object
     */
    #[Ignore]
    public function getCopy(?MaturityLevelRemark $clone = null): MaturityLevelRemark
    {
        if ($clone === null) {
            $clone = new MaturityLevelRemark();
        }
// #BlockStart number=305 id=_#_1

// #BlockEnd number=305

        return $clone;
    }


    /**
     * Private to string method auto generated based on the UML properties
     * This is the new way of doing things.
     */
    public function toString(): string
    {
        return "";
    }

// #BlockStart number=306 id=_#_2

    /**
     * The toString method based on the private __toString autogenerated method
     * If necessary override.
     */
    public function __toString(): string
    {
        return $this->toString();
    }

// #BlockEnd number=306

}
