<?php
/**
* @license Silk Software House Sp. Z O.O.
*/
declare(strict_types=1);
namespace App\Entity;
use App\Entity\Traits\IdTrait;
use App\Entity\Traits\TimePreUpdateTrait;
use App\Entity\Traits\TimeTrait;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Class LineType.
*
* @ORM\Table("line_types")
* @ORM\Entity(repositoryClass="App\Repository\LineTypeRepository")
* @ORM\HasLifecycleCallbacks()
*/
class LineType
{
use IdTrait;
use TimeTrait;
use TimePreUpdateTrait;
/**
* Thickness.
*
* @var int
*
* @Assert\Range(min="1", max="15")
* @Assert\NotBlank()
*
* @ORM\Column(name="thickness", type="integer", nullable=false, options={"comment": "Thickness."})
*/
private int $thickness = 0;
/**
* Pattern.
*
* @var string
*
* @Assert\NotBlank()
*
* @ORM\Column(name="pattern", type="text", nullable=false, options={"comment": "Pattern."})
*/
private string $pattern = '';
/**
* Line type group.
*
* @var string
*
* @Assert\NotBlank()
*
* @ORM\Column(name="colour", type="text", nullable=false, options={"comment": "Colour."})
*/
private string $colour = '';
/**
* LineTypeGroup.
*
* @var LineTypeGroup|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\LineTypeGroup", inversedBy="lineTypes")
* @ORM\JoinColumn(name="line_type_group_id", nullable=true)
*/
private ?LineTypeGroup $lineTypeGroup;
/**
* Get thickness.
*
* @return int
*/
public function getThickness(): int
{
return $this->thickness;
}
/**
* Set thickness.
*
* @param int $thickness
*
* @return LineType
*/
public function setThickness(int $thickness): self
{
$this->thickness = $thickness;
return $this;
}
/**
* Get pattern.
*
* @return string
*/
public function getPattern(): ?string
{
return $this->pattern;
}
/**
* Set pattern.
*
* @param string $pattern
*
* @return LineType;
*/
public function setPattern(string $pattern): self
{
$this->pattern = $pattern;
return $this;
}
/**
* Get colour.
*
* @return string
*/
public function getColour(): string
{
return $this->colour;
}
/**
* Set colour.
*
* @param string $colour
*
* @return LineType
*/
public function setColour(string $colour): self
{
$this->colour = $colour;
return $this;
}
/**
* Get line type group.
*
* @return LineTypeGroup
*/
public function getLineTypeGroup(): LineTypeGroup
{
return $this->lineTypeGroup;
}
/**
* Set a line type group.
*
* @param LineTypeGroup $lineTypeGroup
*
* @return LineType
*/
public function setLineTypeGroup(LineTypeGroup $lineTypeGroup): self
{
$this->lineTypeGroup = $lineTypeGroup;
return $this;
}
/**
* To string.
*
* @return string
*/
public function __toString()
{
return '{{colour}}: '.$this->colour.' {{thickness}}: '.$this->thickness;
}
}