mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-07-10 02:14:31 +02:00
The part class has become very big and clumsy, that way it should be easier to maintain this entity...
130 lines
No EOL
3.3 KiB
PHP
130 lines
No EOL
3.3 KiB
PHP
<?php
|
|
/**
|
|
*
|
|
* part-db version 0.1
|
|
* Copyright (C) 2005 Christoph Lechner
|
|
* http://www.cl-projects.de/
|
|
*
|
|
* part-db version 0.2+
|
|
* Copyright (C) 2009 K. Jacobs and others (see authors.php)
|
|
* http://code.google.com/p/part-db/
|
|
*
|
|
* Part-DB Version 0.4+
|
|
* Copyright (C) 2016 - 2019 Jan Böhmer
|
|
* https://github.com/jbtronics
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*
|
|
*/
|
|
|
|
namespace App\Entity\Parts\PartTraits;
|
|
|
|
|
|
use App\Entity\Parts\Part;
|
|
use App\Security\Annotations\ColumnSecurity;
|
|
|
|
/**
|
|
* Advanced properties of a part, not related to a more specific group.
|
|
* @package App\Entity\Parts\PartTraits
|
|
*/
|
|
trait AdvancedPropertyTrait
|
|
{
|
|
/**
|
|
* @var bool Determines if this part entry needs review (for example, because it is work in progress)
|
|
* @ORM\Column(type="boolean")
|
|
* @ColumnSecurity(type="boolean")
|
|
*/
|
|
protected $needs_review = false;
|
|
|
|
/**
|
|
* @var string A comma seperated list of tags, assocciated with the part.
|
|
* @ORM\Column(type="text")
|
|
* @ColumnSecurity(type="string", prefix="tags", placeholder="")
|
|
*/
|
|
protected $tags = '';
|
|
|
|
/**
|
|
* @var float|null How much a single part unit weighs in gramms.
|
|
* @ORM\Column(type="float", nullable=true)
|
|
* @ColumnSecurity(type="float", placeholder=null)
|
|
* @Assert\PositiveOrZero()
|
|
*/
|
|
protected $mass;
|
|
|
|
/**
|
|
* Checks if this part is marked, for that it needs further review.
|
|
* @return bool
|
|
*/
|
|
public function isNeedsReview(): bool
|
|
{
|
|
return $this->needs_review;
|
|
}
|
|
|
|
/**
|
|
* Sets the "needs review" status of this part.
|
|
* @param bool $needs_review
|
|
* @return Part|self
|
|
*/
|
|
public function setNeedsReview(bool $needs_review): self
|
|
{
|
|
$this->needs_review = $needs_review;
|
|
return $this;
|
|
}
|
|
|
|
|
|
/**
|
|
* Gets a comma separated list, of tags, that are assigned to this part
|
|
* @return string
|
|
*/
|
|
public function getTags(): string
|
|
{
|
|
return $this->tags;
|
|
}
|
|
|
|
/**
|
|
* Sets a comma separated list of tags, that are assigned to this part.
|
|
* @param string $tags
|
|
* @return self
|
|
*/
|
|
public function setTags(string $tags): self
|
|
{
|
|
$this->tags = $tags;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Returns the mass of a single part unit.
|
|
* Returns null, if the mass is unknown/not set yet
|
|
* @return float|null
|
|
*/
|
|
public function getMass(): ?float
|
|
{
|
|
return $this->mass;
|
|
}
|
|
|
|
/**
|
|
* Sets the mass of a single part unit.
|
|
* Sett to null, if the mass is unknown.
|
|
* @param float|null $mass
|
|
* @return self
|
|
*/
|
|
public function setMass(?float $mass): self
|
|
{
|
|
$this->mass = $mass;
|
|
return $this;
|
|
}
|
|
|
|
|
|
} |