src/Entity/Configurator/Element.php line 20

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Configurator;
  4. use App\Model\ElementType;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Sylius\Component\Resource\Model\ResourceInterface;
  9. use Symfony\Component\HttpFoundation\File\UploadedFile;
  10. /**
  11.  * /!\ Si un champ est rajouté ici, il faut aussi le rajouter dans ElementCloneGenerator
  12.  *
  13.  * @ORM\Entity
  14.  * @ORM\Table(name="app_configurator_element")
  15.  */
  16. class Element implements ResourceInterface
  17. {
  18.     /**
  19.      * @ORM\Id()
  20.      * @ORM\GeneratedValue()
  21.      * @ORM\Column(type="integer")
  22.      */
  23.     private ?int $id null;
  24.     /**
  25.      * plan (premier plan, deuxieme plan etc)
  26.      * @ORM\Column(type="integer", nullable=false)
  27.      */
  28.     private int $level;
  29.     /**
  30.      * @ORM\Column(type="string", nullable=false)
  31.      */
  32.     private string $type ElementType::TYPE_TEXT;
  33.     /**
  34.      * @ORM\Column(type="integer", nullable=false, name="coordinates_x")
  35.      */
  36.     private int $coordinatesX;
  37.     /**
  38.      * @ORM\Column(type="integer", nullable=false, name="coordinates_y")
  39.      */
  40.     private int $coordinatesY;
  41.     /**
  42.      * px
  43.      * @ORM\Column(type="float", nullable=false, options={"default" : 100})
  44.      */
  45.     private ?float $height 100;
  46.     /**
  47.      * px
  48.      * @ORM\Column(type="float", nullable=false, options={"default" : 100})
  49.      */
  50.     private ?float $width 100;
  51.     /**
  52.      * visible par l'utilisateur sur le configurateur
  53.      * @ORM\Column(name="visible_on_configurator", type="boolean", nullable=true)
  54.      */
  55.     private bool $visibleOnConfigurator true;
  56.     /**
  57.      * visible sur le produit final
  58.      * @ORM\Column(name="visible_on_print", type="boolean", nullable=true, options={"default" : 1})
  59.      */
  60.     private ?bool $visibleOnPrint true;
  61.     /**
  62.      * @ORM\Column(name="curved_text", type="boolean", options={"default" : 0})
  63.      */
  64.     private bool $curvedText false;
  65.     /**
  66.      * s'il est relié à la zone d'impression, l'élément sera coupé au niveau de la zone d'impression même sur le configurateur
  67.      * s'il n'est relié à la zone d'impression, l'élément ne sera pas coupé au niveau de la zone d'impression sur le configurateur
  68.      * @ORM\Column(name="linked_to_print_zone", type="boolean", nullable=true, options={"default" : 1})
  69.      */
  70.     private bool $linkedToPrintZone true;
  71.     /**
  72.      * si true, l'élément doit se mélanger au fond
  73.      * @ORM\Column(type="boolean", options={"default" : 0})
  74.      */
  75.     private ?bool $blended false;
  76.     /**
  77.      * @ORM\ManyToOne(targetEntity=Model::class, inversedBy="elements")
  78.      * @ORM\JoinColumn(nullable=true)
  79.      */
  80.     private ?Model $model;
  81.     /**
  82.      * @ORM\Column(type="string", nullable=true)
  83.      */
  84.     private ?string $name null;
  85.     /**
  86.      * @ORM\Column(name="default_text", type="string", nullable=true)
  87.      */
  88.     private ?string $defaultText null;
  89.     /**
  90.      * @ORM\Column(name="text_bold", type="boolean", options={"default": 0})
  91.      */
  92.     private ?bool $textBold null;
  93.     /**
  94.      * @ORM\Column(name="text_italic", type="boolean", options={"default": 0})
  95.      */
  96.     private bool $textItalic false;
  97.     /**
  98.      * @ORM\Column(name="text_alignment", type="string", nullable=true)
  99.      */
  100.     private ?string $textAlignment null;
  101.     /**
  102.      * @ORM\Column(name="default_text_size", type="integer", nullable=true)
  103.      */
  104.     private ?int $defaultTextSize null;
  105.     /**
  106.      * @ORM\Column(type="integer", options={"default" : 0})
  107.      */
  108.     private int $orientation 0;
  109.     /**
  110.      * @ORM\Column(type="smallint", options={"default" : 1})
  111.      */
  112.     private int $linesMax 1;
  113.     /**
  114.      * @ORM\Column(name="character_limit", type="smallint", nullable=true)
  115.      */
  116.     private ?int $characterLimit null;
  117.     /**
  118.      * @ORM\Column(name="line_space", type="float", nullable=true)
  119.      */
  120.     private ?float $lineSpace null;
  121.     /**
  122.      * @ORM\Column(name="character_line_limit", type="smallint", nullable=true)
  123.      */
  124.     private ?int $characterLineLimit null;
  125.     /**
  126.      * @ORM\Column(name="text_size_min", type="smallint", nullable=true)
  127.      */
  128.     private ?int $textSizeMin null;
  129.     /**
  130.      * @ORM\Column(name="allow_line_space_change", type="boolean", options={"default" : 0})
  131.      */
  132.     private bool $allowLineSpaceChange false;
  133.     /**
  134.      * @ORM\Column(name="allow_rotation", type="boolean", options={"default" : 0})
  135.      */
  136.     private bool $allowRotation false;
  137.     /**
  138.      * @ORM\Column(name="allow_movement", type="boolean", options={"default" : 0})
  139.      */
  140.     private bool $allowMovement false;
  141.     /**
  142.      * @ORM\Column(type="boolean", options={"default" : 1})
  143.      */
  144.     private bool $mandatory true;
  145.     /**
  146.      * indique si le print color doit être prise en compte lors de l'impression
  147.      * @ORM\Column(type="boolean", options={"default" : 0})
  148.      */
  149.     private bool $forcePrintColor false;
  150.     /**
  151.      * @ORM\Column(name="print_color", type="string", nullable=true)
  152.      */
  153.     private ?string $printColor null;
  154.     /**
  155.      * @ORM\ManyToMany(targetEntity=Library::class)
  156.      * @ORM\JoinTable(
  157.      *      name="app_configurator_element_library",
  158.      *      joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")},
  159.      *      inverseJoinColumns={@ORM\JoinColumn(name="library_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")}
  160.      *      )
  161.      */
  162.     private Collection $libraries;
  163.     /**
  164.      * @ORM\ManyToMany(targetEntity=Font::class, mappedBy="elements")
  165.      * @ORM\JoinTable(
  166.      *      name="app_configurator_element_font",
  167.      *      joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")},
  168.      *      inverseJoinColumns={@ORM\JoinColumn(name="font_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")}
  169.      *      )
  170.      */
  171.     private Collection $fonts;
  172.     /**
  173.      * @ORM\ManyToMany(targetEntity=FontColor::class, mappedBy="elements")
  174.      * @ORM\JoinTable(
  175.      *      name="app_configurator_element_font_color",
  176.      *      joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")},
  177.      *      inverseJoinColumns={@ORM\JoinColumn(name="font_color_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")}
  178.      *      )
  179.      */
  180.     private Collection $fontColors;
  181.     /**
  182.      * @ORM\ManyToMany(targetEntity="App\Entity\Configurator\FontColor")
  183.      * @ORM\JoinTable(
  184.      *      name="app_configurator_element_stroke_color",
  185.      *      joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")},
  186.      *      inverseJoinColumns={@ORM\JoinColumn(name="font_color_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")}
  187.      *      )
  188.      */
  189.     private $strokeColors;
  190.     /**
  191.      * @ORM\ManyToMany(targetEntity="App\Entity\Configurator\FontColor")
  192.      * @ORM\JoinTable(
  193.      *      name="app_configurator_element_shadow_color",
  194.      *      joinColumns={@ORM\JoinColumn(name="element_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")},
  195.      *      inverseJoinColumns={@ORM\JoinColumn(name="font_color_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")}
  196.      *      )
  197.      */
  198.     private $shadowColors;
  199.     /**
  200.      * @ORM\ManyToOne(targetEntity=Library::class)
  201.      * @ORM\JoinColumn(nullable=true, name="default_library")
  202.      */
  203.     private ?Library $defaultLibrary null;
  204.     /**
  205.      * @ORM\ManyToOne(targetEntity=Font::class)
  206.      * @ORM\JoinColumn(nullable=true, name="default_font_id")
  207.      */
  208.     private ?Font $defaultFont;
  209.     /**
  210.      * @ORM\ManyToOne(targetEntity=FontColor::class)
  211.      * @ORM\JoinColumn(nullable=true, name="default_font_color_id")
  212.      */
  213.     private ?FontColor $defaultFontColor;
  214.     /**
  215.      * @ORM\ManyToOne(targetEntity=FontColor::class)
  216.      * @ORM\JoinColumn(nullable=true, name="default_stroke_color_id")
  217.      */
  218.     private ?FontColor $defaultStrokeColor;
  219.     /**
  220.      * @ORM\ManyToOne(targetEntity=FontColor::class)
  221.      * @ORM\JoinColumn(nullable=true, name="default_shadow_color_id")
  222.      */
  223.     private ?FontColor $defaultShadowColor;
  224.     /**
  225.      * @ORM\Column(name="image_path", type="string", nullable=true)
  226.      */
  227.     private ?string $imagePath null;
  228.     /**
  229.      * @ORM\Column(name="image_path_canva", type="string", nullable=true)
  230.      */
  231.     private ?string $imagePathCanva null;
  232.     private ?UploadedFile $file null;
  233.     /**
  234.      * @ORM\OneToMany(targetEntity=ConfigurationItem::class, mappedBy="element", cascade={"persist"})
  235.      */
  236.     private Collection $configurationItems;
  237.     /**
  238.      * for curved text
  239.      * @ORM\Column(type="integer", nullable=true)
  240.      */
  241.     private ?int $diameter null;
  242.     /**
  243.      * @ORM\ManyToOne(targetEntity=Workflow::class)
  244.      * @ORM\JoinColumn(nullable=true, name="workflow_id")
  245.      */
  246.     private ?Workflow $workflow null;
  247.     public function __construct()
  248.     {
  249.         $this->libraries = new ArrayCollection();
  250.         $this->fonts = new ArrayCollection();
  251.         $this->fontColors = new ArrayCollection();
  252.         $this->strokeColors = new ArrayCollection();
  253.         $this->shadowColors = new ArrayCollection();
  254.         $this->configurationItems = new ArrayCollection();
  255.     }
  256.     /**
  257.      * @return int|null
  258.      */
  259.     public function getId(): ?int
  260.     {
  261.         return $this->id;
  262.     }
  263.     /**
  264.      * @param int|null $id
  265.      */
  266.     public function setId(?int $id): void
  267.     {
  268.         $this->id $id;
  269.     }
  270.     /**
  271.      * @return int
  272.      */
  273.     public function getLevel(): int
  274.     {
  275.         return $this->level;
  276.     }
  277.     /**
  278.      * @param int $level
  279.      */
  280.     public function setLevel(int $level): void
  281.     {
  282.         $this->level $level;
  283.     }
  284.     /**
  285.      * @return string
  286.      */
  287.     public function getType(): string
  288.     {
  289.         return $this->type;
  290.     }
  291.     /**
  292.      * @param string $type
  293.      */
  294.     public function setType(string $type): void
  295.     {
  296.         $this->type $type;
  297.     }
  298.     /**
  299.      * @return int
  300.      */
  301.     public function getCoordinatesX(): int
  302.     {
  303.         return $this->coordinatesX;
  304.     }
  305.     /**
  306.      * @param int $coordinatesX
  307.      */
  308.     public function setCoordinatesX(int $coordinatesX): void
  309.     {
  310.         $this->coordinatesX $coordinatesX;
  311.     }
  312.     /**
  313.      * @return int
  314.      */
  315.     public function getCoordinatesY(): int
  316.     {
  317.         return $this->coordinatesY;
  318.     }
  319.     /**
  320.      * @param int $coordinatesY
  321.      */
  322.     public function setCoordinatesY(int $coordinatesY): void
  323.     {
  324.         $this->coordinatesY $coordinatesY;
  325.     }
  326.     /**
  327.      * @return float
  328.      */
  329.     public function getHeight(): float
  330.     {
  331.         return $this->height;
  332.     }
  333.     /**
  334.      * @param float $height
  335.      */
  336.     public function setHeight(float $height): void
  337.     {
  338.         $this->height $height;
  339.     }
  340.     /**
  341.      * @return int
  342.      */
  343.     public function getWidth(): float
  344.     {
  345.         return $this->width;
  346.     }
  347.     /**
  348.      * @param float $width
  349.      */
  350.     public function setWidth(float $width): void
  351.     {
  352.         $this->width $width;
  353.     }
  354.     /**
  355.      * @return Model
  356.      */
  357.     public function getModel(): Model
  358.     {
  359.         return $this->model;
  360.     }
  361.     /**
  362.      * @param ?Model $model
  363.      */
  364.     public function setModel(?Model $model): void
  365.     {
  366.         $this->model $model;
  367.     }
  368.     /**
  369.      * @return string|null
  370.      */
  371.     public function getName(): ?string
  372.     {
  373.         return $this->name;
  374.     }
  375.     /**
  376.      * @param string|null $name
  377.      */
  378.     public function setName(?string $name): void
  379.     {
  380.         $this->name $name;
  381.     }
  382.     public function getLibraries(): Collection
  383.     {
  384.         return $this->libraries;
  385.     }
  386.     public function addLibrary(Library $library): self
  387.     {
  388.         if (!$this->libraries->contains($library))
  389.         {
  390.             $this->libraries[] = $library;
  391.         }
  392.         return $this;
  393.     }
  394.     public function removeLibrary(Library $library): self
  395.     {
  396.         $this->libraries->removeElement($library);
  397.         return $this;
  398.     }
  399.     public function clearLibraries(): void
  400.     {
  401.         foreach ($this->libraries as $library) {
  402.             $this->removeLibrary($library);
  403.         }
  404.     }
  405.     public function getFonts(): Collection
  406.     {
  407.         return $this->fonts;
  408.     }
  409.     public function addFont(Font $font): self
  410.     {
  411.         if (!$this->fonts->contains($font))
  412.         {
  413.             $this->fonts[] = $font;
  414.             $font->addElement($this);
  415.         }
  416.         return $this;
  417.     }
  418.     public function removeFont(Font $font): self
  419.     {
  420.         $this->fonts->removeElement($font);
  421.         $font->removeElement($this);
  422.         return $this;
  423.     }
  424.     public function clearFonts(): void
  425.     {
  426.         foreach ($this->fonts as $font) {
  427.             $this->removeFont($font);
  428.         }
  429.     }
  430.     public function getFontColors(): Collection
  431.     {
  432.         return $this->fontColors;
  433.     }
  434.     public function addFontColor(FontColor $fontColor): self
  435.     {
  436.         if (!$this->fontColors->contains($fontColor))
  437.         {
  438.             $this->fontColors[] = $fontColor;
  439.             $fontColor->addElement($this);
  440.         }
  441.         return $this;
  442.     }
  443.     public function removeFontColor(FontColor $fontColor): self
  444.     {
  445.         $this->fontColors->removeElement($fontColor);
  446.         $fontColor->removeElement($this);
  447.         return $this;
  448.     }
  449.     public function clearFontColors(): void
  450.     {
  451.         foreach ($this->fontColors as $fontColor) {
  452.             $this->removeFontColor($fontColor);
  453.         }
  454.     }
  455.     public function getStrokeColors(): Collection
  456.     {
  457.         return $this->strokeColors;
  458.     }
  459.     public function addStrokeColor(FontColor $fontColor): self
  460.     {
  461.         if (!$this->strokeColors->contains($fontColor))
  462.         {
  463.             $this->strokeColors[] = $fontColor;
  464.         }
  465.         return $this;
  466.     }
  467.     public function removeStrokeColor(FontColor $fontColor): self
  468.     {
  469.         $this->strokeColors->removeElement($fontColor);
  470.         return $this;
  471.     }
  472.     public function clearStrokeColors(): void
  473.     {
  474.         foreach ($this->strokeColors as $fontColor) {
  475.             $this->removeStrokeColor($fontColor);
  476.         }
  477.     }
  478.     public function getShadowColors(): Collection
  479.     {
  480.         return $this->shadowColors;
  481.     }
  482.     public function addShadowColor(FontColor $fontColor): self
  483.     {
  484.         if (!$this->shadowColors->contains($fontColor))
  485.         {
  486.             $this->shadowColors[] = $fontColor;
  487.         }
  488.         return $this;
  489.     }
  490.     public function removeShadowColor(FontColor $fontColor): self
  491.     {
  492.         $this->shadowColors->removeElement($fontColor);
  493.         return $this;
  494.     }
  495.     public function clearShadowColors(): void
  496.     {
  497.         foreach ($this->shadowColors as $fontColor) {
  498.             $this->removeShadowColor($fontColor);
  499.         }
  500.     }
  501.     /**
  502.      * @return string|null
  503.      */
  504.     public function getImagePath(): ?string
  505.     {
  506.         return $this->imagePath;
  507.     }
  508.     /**
  509.      * @param string|null $imagePath
  510.      */
  511.     public function setImagePath(?string $imagePath): void
  512.     {
  513.         $this->imagePath $imagePath;
  514.     }
  515.     /**
  516.      * @return UploadedFile|null
  517.      */
  518.     public function getFile(): ?UploadedFile
  519.     {
  520.         return $this->file;
  521.     }
  522.     /**
  523.      * @param UploadedFile|null $file
  524.      */
  525.     public function setFile(?UploadedFile $file): void
  526.     {
  527.         $this->file $file;
  528.     }
  529.     /**
  530.      * @return string|null
  531.      */
  532.     public function getDefaultText(): ?string
  533.     {
  534.         return $this->defaultText;
  535.     }
  536.     /**
  537.      * @param string|null $defaultText
  538.      */
  539.     public function setDefaultText(?string $defaultText): void
  540.     {
  541.         if ($defaultText)
  542.             $this->defaultText str_replace(["<br>""<p>""</p>"], ["\r\n""""\r\n"], $defaultText);
  543.         else
  544.             $this->defaultText null;
  545.     }
  546.     /**
  547.      * @return int
  548.      */
  549.     public function getOrientation(): int
  550.     {
  551.         return $this->orientation;
  552.     }
  553.     /**
  554.      * @param int $orientation
  555.      */
  556.     public function setOrientation(int $orientation): void
  557.     {
  558.         $this->orientation $orientation;
  559.     }
  560.     public function getConfigurationItems(): Collection
  561.     {
  562.         return $this->configurationItems;
  563.     }
  564.     public function addConfigurationItem(ConfigurationItem $configurationItem): self
  565.     {
  566.         if (!$this->configurationItems->contains($configurationItem)) {
  567.             $this->configurationItems[] = $configurationItem;
  568.             $configurationItem->setElement($this);
  569.         }
  570.         return $this;
  571.     }
  572.     public function removeConfigurationItem(ConfigurationItem $configurationItem): self
  573.     {
  574.         if ($this->configurationItems->removeElement($configurationItem)) {
  575.             // set the owning side to null (unless already changed)
  576.             if ($configurationItem->getElement() === $this) {
  577.                 $configurationItem->setElement(null);
  578.             }
  579.         }
  580.         return $this;
  581.     }
  582.     /**
  583.      * @return bool
  584.      */
  585.     public function isAllowRotation(): bool
  586.     {
  587.         return $this->allowRotation;
  588.     }
  589.     /**
  590.      * @param bool $allowRotation
  591.      */
  592.     public function setAllowRotation(bool $allowRotation): void
  593.     {
  594.         $this->allowRotation $allowRotation;
  595.     }
  596.     /**
  597.      * @return bool
  598.      */
  599.     public function isVisibleOnConfigurator(): bool
  600.     {
  601.         return $this->visibleOnConfigurator;
  602.     }
  603.     /**
  604.      * @param bool $visibleOnConfigurator
  605.      */
  606.     public function setVisibleOnConfigurator(bool $visibleOnConfigurator): void
  607.     {
  608.         $this->visibleOnConfigurator $visibleOnConfigurator;
  609.     }
  610.     /**
  611.      * @return bool
  612.      */
  613.     public function isVisibleOnPrint(): ?bool
  614.     {
  615.         return $this->visibleOnPrint;
  616.     }
  617.     public function setVisibleOnPrint(bool $visibleOnPrint): void
  618.     {
  619.         $this->visibleOnPrint $visibleOnPrint;
  620.     }
  621.     /**
  622.      * @return Library|null
  623.      */
  624.     public function getDefaultLibrary(): ?Library
  625.     {
  626.         return $this->defaultLibrary;
  627.     }
  628.     /**
  629.      * @param Library|null $defaultLibrary
  630.      */
  631.     public function setDefaultLibrary(?Library $defaultLibrary): void
  632.     {
  633.         $this->defaultLibrary $defaultLibrary;
  634.     }
  635.     /**
  636.      * @return Font|null
  637.      */
  638.     public function getDefaultFont(): ?Font
  639.     {
  640.         return $this->defaultFont;
  641.     }
  642.     /**
  643.      * @param Font|null $defaultFont
  644.      */
  645.     public function setDefaultFont(?Font $defaultFont): void
  646.     {
  647.         $this->defaultFont $defaultFont;
  648.     }
  649.     /**
  650.      * @return FontColor|null
  651.      */
  652.     public function getDefaultFontColor(): ?FontColor
  653.     {
  654.         return $this->defaultFontColor;
  655.     }
  656.     /**
  657.      * @param FontColor|null $defaultFontColor
  658.      */
  659.     public function setDefaultFontColor(?FontColor $defaultFontColor): void
  660.     {
  661.         $this->defaultFontColor $defaultFontColor;
  662.     }
  663.     /**
  664.      * @return bool
  665.      */
  666.     public function isLinkedToPrintZone(): bool
  667.     {
  668.         return $this->linkedToPrintZone;
  669.     }
  670.     /**
  671.      * @param bool $linkedToPrintZone
  672.      */
  673.     public function setLinkedToPrintZone(bool $linkedToPrintZone): void
  674.     {
  675.         $this->linkedToPrintZone $linkedToPrintZone;
  676.     }
  677.     /**
  678.      * @return bool
  679.      */
  680.     public function isAllowMovement(): bool
  681.     {
  682.         return $this->allowMovement;
  683.     }
  684.     /**
  685.      * @param bool $allowMovement
  686.      */
  687.     public function setAllowMovement(bool $allowMovement): void
  688.     {
  689.         $this->allowMovement $allowMovement;
  690.     }
  691.     /**
  692.      * @return bool
  693.      */
  694.     public function isMandatory(): bool
  695.     {
  696.         return $this->mandatory;
  697.     }
  698.     /**
  699.      * @param bool $mandatory
  700.      */
  701.     public function setMandatory(bool $mandatory): void
  702.     {
  703.         $this->mandatory $mandatory;
  704.     }
  705.     /**
  706.      * @return int
  707.      */
  708.     public function getLinesMax(): int
  709.     {
  710.         return $this->linesMax;
  711.     }
  712.     /**
  713.      * @param int $linesMax
  714.      */
  715.     public function setLinesMax(int $linesMax): void
  716.     {
  717.         $this->linesMax $linesMax;
  718.     }
  719.     /**
  720.      * @return bool
  721.      */
  722.     public function isCurvedText(): bool
  723.     {
  724.         return $this->curvedText;
  725.     }
  726.     /**
  727.      * @param bool $curvedText
  728.      */
  729.     public function setCurvedText(bool $curvedText): void
  730.     {
  731.         $this->curvedText $curvedText;
  732.     }
  733.     /**
  734.      * @return int|null
  735.      */
  736.     public function getDiameter(): ?int
  737.     {
  738.         return $this->diameter;
  739.     }
  740.     /**
  741.      * @param int|null $diameter
  742.      */
  743.     public function setDiameter(?int $diameter): void
  744.     {
  745.         $this->diameter $diameter;
  746.     }
  747.     /**
  748.      * @return int|null
  749.      */
  750.     public function getDefaultTextSize(): ?int
  751.     {
  752.         return $this->defaultTextSize;
  753.     }
  754.     /**
  755.      * @param int|null $defaultTextSize
  756.      */
  757.     public function setDefaultTextSize(?int $defaultTextSize): void
  758.     {
  759.         $this->defaultTextSize $defaultTextSize;
  760.     }
  761.     /**
  762.      * @return string|null
  763.      */
  764.     public function getPrintColor(): ?string
  765.     {
  766.         return $this->printColor;
  767.     }
  768.     /**
  769.      * @param string|null $printColor
  770.      */
  771.     public function setPrintColor(?string $printColor): void
  772.     {
  773.         $this->printColor $printColor;
  774.     }
  775.     /**
  776.      * @return string|null
  777.      */
  778.     public function getImagePathCanva(): ?string
  779.     {
  780.         return $this->imagePathCanva;
  781.     }
  782.     /**
  783.      * @param string|null $imagePathCanva
  784.      */
  785.     public function setImagePathCanva(?string $imagePathCanva): void
  786.     {
  787.         $this->imagePathCanva $imagePathCanva;
  788.     }
  789.     /**
  790.      * @return bool|null
  791.      */
  792.     public function getTextBold(): ?bool
  793.     {
  794.         return $this->textBold;
  795.     }
  796.     /**
  797.      * @param bool|null $textBold
  798.      */
  799.     public function setTextBold(?bool $textBold): void
  800.     {
  801.         $this->textBold $textBold;
  802.     }
  803.     /**
  804.      * @return bool
  805.      */
  806.     public function isTextItalic(): bool
  807.     {
  808.         return $this->textItalic;
  809.     }
  810.     /**
  811.      * @param bool $textItalic
  812.      */
  813.     public function setTextItalic(bool $textItalic): void
  814.     {
  815.         $this->textItalic $textItalic;
  816.     }
  817.     /**
  818.      * @return string|null
  819.      */
  820.     public function getTextAlignment(): ?string
  821.     {
  822.         return $this->textAlignment;
  823.     }
  824.     /**
  825.      * @param string|null $textAlignment
  826.      */
  827.     public function setTextAlignment(?string $textAlignment): void
  828.     {
  829.         $this->textAlignment $textAlignment;
  830.     }
  831.     /**
  832.      * @return bool|null
  833.      */
  834.     public function getBlended(): ?bool
  835.     {
  836.         return $this->blended;
  837.     }
  838.     /**
  839.      * @param bool|null $blended
  840.      */
  841.     public function setBlended(?bool $blended): void
  842.     {
  843.         $this->blended $blended;
  844.     }
  845.     /**
  846.      * @return bool
  847.      */
  848.     public function isForcePrintColor(): bool
  849.     {
  850.         return $this->forcePrintColor;
  851.     }
  852.     /**
  853.      * @param bool $forcePrintColor
  854.      */
  855.     public function setForcePrintColor(bool $forcePrintColor): void
  856.     {
  857.         $this->forcePrintColor $forcePrintColor;
  858.     }
  859.     /**
  860.      * @return FontColor|null
  861.      */
  862.     public function getDefaultStrokeColor(): ?FontColor
  863.     {
  864.         return $this->defaultStrokeColor;
  865.     }
  866.     /**
  867.      * @param FontColor|null $defaultStrokeColor
  868.      */
  869.     public function setDefaultStrokeColor(?FontColor $defaultStrokeColor): void
  870.     {
  871.         $this->defaultStrokeColor $defaultStrokeColor;
  872.     }
  873.     /**
  874.      * @return FontColor|null
  875.      */
  876.     public function getDefaultShadowColor(): ?FontColor
  877.     {
  878.         return $this->defaultShadowColor;
  879.     }
  880.     /**
  881.      * @param FontColor|null $defaultShadowColor
  882.      */
  883.     public function setDefaultShadowColor(?FontColor $defaultShadowColor): void
  884.     {
  885.         $this->defaultShadowColor $defaultShadowColor;
  886.     }
  887.     /**
  888.      * @return int|null
  889.      */
  890.     public function getCharacterLimit(): ?int
  891.     {
  892.         return $this->characterLimit;
  893.     }
  894.     /**
  895.      * @param int|null $characterLimit
  896.      */
  897.     public function setCharacterLimit(?int $characterLimit): void
  898.     {
  899.         $this->characterLimit $characterLimit;
  900.     }
  901.     /**
  902.      * @return float|null
  903.      */
  904.     public function getLineSpace(): ?float
  905.     {
  906.         return $this->lineSpace;
  907.     }
  908.     /**
  909.      * @param float|null $lineSpace
  910.      */
  911.     public function setLineSpace(?float $lineSpace): void
  912.     {
  913.         $this->lineSpace $lineSpace;
  914.     }
  915.     /**
  916.      * @return int|null
  917.      */
  918.     public function getCharacterLineLimit(): ?int
  919.     {
  920.         return $this->characterLineLimit;
  921.     }
  922.     /**
  923.      * @param int|null $characterLineLimit
  924.      */
  925.     public function setCharacterLineLimit(?int $characterLineLimit): void
  926.     {
  927.         $this->characterLineLimit $characterLineLimit;
  928.     }
  929.     /**
  930.      * @return int|null
  931.      */
  932.     public function getTextSizeMin(): ?int
  933.     {
  934.         return $this->textSizeMin;
  935.     }
  936.     /**
  937.      * @param int|null $textSizeMin
  938.      */
  939.     public function setTextSizeMin(?int $textSizeMin): void
  940.     {
  941.         $this->textSizeMin $textSizeMin;
  942.     }
  943.     /**
  944.      * @return bool
  945.      */
  946.     public function isAllowLineSpaceChange(): bool
  947.     {
  948.         return $this->allowLineSpaceChange;
  949.     }
  950.     /**
  951.      * @param bool $allowLineSpaceChange
  952.      */
  953.     public function setAllowLineSpaceChange(bool $allowLineSpaceChange): void
  954.     {
  955.         $this->allowLineSpaceChange $allowLineSpaceChange;
  956.     }
  957.     /**
  958.      * @return Workflow|null
  959.      */
  960.     public function getWorkflow(): ?Workflow
  961.     {
  962.         return $this->workflow;
  963.     }
  964.     /**
  965.      * @param Workflow|null $workflow
  966.      */
  967.     public function setWorkflow(?Workflow $workflow): void
  968.     {
  969.         $this->workflow $workflow;
  970.     }
  971. }