Improved documentation of entity fields

This commit is contained in:
Jan Böhmer 2023-09-17 12:50:32 +02:00
parent 219fbe5fca
commit f01ec9dbe4
13 changed files with 30 additions and 27 deletions

View file

@ -86,7 +86,7 @@ abstract class AbstractCompany extends AbstractPartsContainingDBElement
protected string $comment = ''; protected string $comment = '';
/** /**
* @var string * @var string The link to the website of an article. Use %PARTNUMBER% as placeholder for the part number.
*/ */
#[ORM\Column(type: Types::STRING)] #[ORM\Column(type: Types::STRING)]
protected string $auto_product_url = ''; protected string $auto_product_url = '';

View file

@ -40,7 +40,7 @@ abstract class AbstractNamedDBElement extends AbstractDBElement implements Named
use TimestampTrait; use TimestampTrait;
/** /**
* @var string the name of this element * @var string The name of this element
*/ */
#[Assert\NotBlank] #[Assert\NotBlank]
#[Groups(['simple', 'extended', 'full', 'import', 'api:basic:read', 'api:basic:write'])] #[Groups(['simple', 'extended', 'full', 'import', 'api:basic:read', 'api:basic:write'])]

View file

@ -40,6 +40,9 @@ use Symfony\Component\Serializer\Annotation\Groups;
#[ORM\MappedSuperclass(repositoryClass: AbstractPartsContainingRepository::class)] #[ORM\MappedSuperclass(repositoryClass: AbstractPartsContainingRepository::class)]
abstract class AbstractPartsContainingDBElement extends AbstractStructuralDBElement abstract class AbstractPartsContainingDBElement extends AbstractStructuralDBElement
{ {
/**
* @var Collection|ArrayCollection The parameters of this element
*/
#[Groups(['full'])] #[Groups(['full'])]
protected Collection $parameters; protected Collection $parameters;

View file

@ -93,56 +93,56 @@ class Category extends AbstractPartsContainingDBElement
protected string $comment = ''; protected string $comment = '';
/** /**
* @var string * @var string The hint which is shown as hint under the partname field, when a part is created in this category.
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::TEXT)] #[ORM\Column(type: Types::TEXT)]
protected string $partname_hint = ''; protected string $partname_hint = '';
/** /**
* @var string * @var string The regular expression which is used to validate the partname of a part in this category.
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::TEXT)] #[ORM\Column(type: Types::TEXT)]
protected string $partname_regex = ''; protected string $partname_regex = '';
/** /**
* @var bool * @var bool Set to true, if the footprints should be disabled for parts this category (not implemented yet).
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $disable_footprints = false; protected bool $disable_footprints = false;
/** /**
* @var bool * @var bool Set to true, if the manufacturers should be disabled for parts this category (not implemented yet).
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $disable_manufacturers = false; protected bool $disable_manufacturers = false;
/** /**
* @var bool * @var bool Set to true, if the autodatasheets should be disabled for parts this category (not implemented yet).
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $disable_autodatasheets = false; protected bool $disable_autodatasheets = false;
/** /**
* @var bool * @var bool Set to true, if the properties should be disabled for parts this category (not implemented yet).
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $disable_properties = false; protected bool $disable_properties = false;
/** /**
* @var string * @var string The default description for parts in this category.
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::TEXT)] #[ORM\Column(type: Types::TEXT)]
protected string $default_description = ''; protected string $default_description = '';
/** /**
* @var string * @var string The default comment for parts in this category.
*/ */
#[Groups(['full', 'import', 'category:read', 'category:write'])] #[Groups(['full', 'import', 'category:read', 'category:write'])]
#[ORM\Column(type: Types::TEXT)] #[ORM\Column(type: Types::TEXT)]

View file

@ -113,7 +113,7 @@ class PartLot extends AbstractDBElement implements TimeStampableInterface, Named
protected bool $instock_unknown = false; protected bool $instock_unknown = false;
/** /**
* @var float For continuous sizes (length, volume, etc.) the instock is saved here. * @var float The amount of parts in this lot. For integer-quantities this value is rounded to the next integer.
*/ */
#[Assert\PositiveOrZero] #[Assert\PositiveOrZero]
#[Groups(['simple', 'extended', 'full', 'import', 'part_lot:read', 'part_lot:write'])] #[Groups(['simple', 'extended', 'full', 'import', 'part_lot:read', 'part_lot:write'])]

View file

@ -43,14 +43,14 @@ trait AdvancedPropertyTrait
protected bool $needs_review = false; protected bool $needs_review = false;
/** /**
* @var string a comma separated list of tags, associated with the part * @var string A comma separated list of tags, associated with the part
*/ */
#[Groups(['extended', 'full', 'import', 'part:read', 'part:write'])] #[Groups(['extended', 'full', 'import', 'part:read', 'part:write'])]
#[ORM\Column(type: Types::TEXT)] #[ORM\Column(type: Types::TEXT)]
protected string $tags = ''; protected string $tags = '';
/** /**
* @var float|null how much a single part unit weighs in grams * @var float|null How much a single part unit weighs in grams
*/ */
#[Assert\PositiveOrZero] #[Assert\PositiveOrZero]
#[Groups(['extended', 'full', 'import', 'part:read', 'part:write'])] #[Groups(['extended', 'full', 'import', 'part:read', 'part:write'])]

View file

@ -36,7 +36,7 @@ use Symfony\Component\Validator\Constraints as Assert;
trait InstockTrait trait InstockTrait
{ {
/** /**
* @var Collection|PartLot[] A list of part lots where this part is stored * @var Collection<int, PartLot> A list of part lots where this part is stored
*/ */
#[Assert\Valid] #[Assert\Valid]
#[Groups(['extended', 'full', 'import'])] #[Groups(['extended', 'full', 'import'])]

View file

@ -46,7 +46,7 @@ trait ManufacturerTrait
protected ?Manufacturer $manufacturer = null; protected ?Manufacturer $manufacturer = null;
/** /**
* @var string the url to the part on the manufacturer's homepage * @var string The url to the part on the manufacturer's homepage
*/ */
#[Assert\Url] #[Assert\Url]
#[Groups(['full', 'import', 'part:read', 'part:write'])] #[Groups(['full', 'import', 'part:read', 'part:write'])]

View file

@ -36,7 +36,7 @@ use Doctrine\ORM\Mapping as ORM;
trait OrderTrait trait OrderTrait
{ {
/** /**
* @var Collection<int, Orderdetail> the details about how and where you can order this part * @var Collection<int, Orderdetail> The details about how and where you can order this part
*/ */
#[Assert\Valid] #[Assert\Valid]
#[Groups(['extended', 'full', 'import'])] #[Groups(['extended', 'full', 'import'])]

View file

@ -108,21 +108,21 @@ class StorageLocation extends AbstractPartsContainingDBElement
protected Collection $parameters; protected Collection $parameters;
/** /**
* @var bool * @var bool When this attribute is set, it is not possible to add additional parts or increase the instock of existing parts.
*/ */
#[Groups(['full', 'import', 'location:read', 'location:write'])] #[Groups(['full', 'import', 'location:read', 'location:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $is_full = false; protected bool $is_full = false;
/** /**
* @var bool * @var bool When this property is set, only one part (but many instock) is allowed to be stored in this store location.
*/ */
#[Groups(['full', 'import', 'location:read', 'location:write'])] #[Groups(['full', 'import', 'location:read', 'location:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $only_single_part = false; protected bool $only_single_part = false;
/** /**
* @var bool * @var bool When this property is set, it is only possible to increase the instock of parts, that are already stored here.
*/ */
#[Groups(['full', 'import', 'location:read', 'location:write'])] #[Groups(['full', 'import', 'location:read', 'location:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]

View file

@ -108,7 +108,7 @@ class Supplier extends AbstractCompany
protected ?Currency $default_currency = null; protected ?Currency $default_currency = null;
/** /**
* @var BigDecimal|null the shipping costs that have to be paid, when ordering via this supplier * @var BigDecimal|null The shipping costs that have to be paid, when ordering via this supplier
*/ */
#[Groups(['extended', 'full', 'import'])] #[Groups(['extended', 'full', 'import'])]
#[ORM\Column(name: 'shipping_costs', nullable: true, type: 'big_decimal', precision: 11, scale: 5)] #[ORM\Column(name: 'shipping_costs', nullable: true, type: 'big_decimal', precision: 11, scale: 5)]

View file

@ -89,21 +89,21 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
protected Collection $pricedetails; protected Collection $pricedetails;
/** /**
* @var string * @var string The order number of the part at the supplier
*/ */
#[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])] #[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])]
#[ORM\Column(type: Types::STRING)] #[ORM\Column(type: Types::STRING)]
protected string $supplierpartnr = ''; protected string $supplierpartnr = '';
/** /**
* @var bool * @var bool True if this part is obsolete/not available anymore at the supplier
*/ */
#[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])] #[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])]
#[ORM\Column(type: Types::BOOLEAN)] #[ORM\Column(type: Types::BOOLEAN)]
protected bool $obsolete = false; protected bool $obsolete = false;
/** /**
* @var string * @var string The URL to the product on the supplier's website
*/ */
#[Assert\Url] #[Assert\Url]
#[Groups(['full', 'import', 'orderdetail:read', 'orderdetail:write'])] #[Groups(['full', 'import', 'orderdetail:read', 'orderdetail:write'])]
@ -111,7 +111,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
protected string $supplier_product_url = ''; protected string $supplier_product_url = '';
/** /**
* @var Part|null * @var Part|null The part with which this orderdetail is associated
*/ */
#[Assert\NotNull] #[Assert\NotNull]
#[ORM\ManyToOne(targetEntity: Part::class, inversedBy: 'orderdetails')] #[ORM\ManyToOne(targetEntity: Part::class, inversedBy: 'orderdetails')]
@ -120,7 +120,7 @@ class Orderdetail extends AbstractDBElement implements TimeStampableInterface, N
protected ?Part $part = null; protected ?Part $part = null;
/** /**
* @var Supplier|null * @var Supplier|null The supplier of this orderdetail
*/ */
#[Assert\NotNull(message: 'validator.orderdetail.supplier_must_not_be_null')] #[Assert\NotNull(message: 'validator.orderdetail.supplier_must_not_be_null')]
#[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])] #[Groups(['extended', 'full', 'import', 'orderdetail:read', 'orderdetail:write'])]

View file

@ -90,7 +90,7 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
protected ?Currency $currency = null; protected ?Currency $currency = null;
/** /**
* @var float * @var float The amount/quantity for which the price is for (in part unit)
*/ */
#[Assert\Positive] #[Assert\Positive]
#[Groups(['extended', 'full', 'import', 'pricedetail:read', 'pricedetail:write'])] #[Groups(['extended', 'full', 'import', 'pricedetail:read', 'pricedetail:write'])]
@ -98,7 +98,7 @@ class Pricedetail extends AbstractDBElement implements TimeStampableInterface
protected float $price_related_quantity = 1.0; protected float $price_related_quantity = 1.0;
/** /**
* @var float * @var float The minimum amount/quantity, which is needed to get this discount (in part unit)
*/ */
#[Assert\Positive] #[Assert\Positive]
#[Groups(['extended', 'full', 'import', 'pricedetail:read', 'pricedetail:write'])] #[Groups(['extended', 'full', 'import', 'pricedetail:read', 'pricedetail:write'])]