Release 2.35 (#5470)

* open up API for plugins by removing internal
* use constants in entity column definition
* simplified entity management API
* bump packages
* allow installing assets and run database migrations independently
* bump to apidoc-bundle 5
* do not duplicate http method in API operationId
* new security entries in Open API definition
* changed API UI provider for Swagger to Stoplight, improved endpoint titles, hide internal endpoints
* deactivate swagger json endpoint
This commit is contained in:
Kevin Papst
2025-05-24 14:28:39 +02:00
committed by GitHub
parent 6e26a37c4d
commit 1e0fbf0b73
63 changed files with 518 additions and 529 deletions

View File

@@ -10,6 +10,7 @@
namespace App\Entity;
use App\Repository\InvoiceTemplateRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
@@ -21,15 +22,15 @@ use Symfony\Component\Validator\Constraints as Assert;
#[UniqueEntity('name')]
class InvoiceTemplate
{
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Column(name: 'id', type: Types::INTEGER)]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'IDENTITY')]
private ?int $id = null;
#[ORM\Column(name: 'name', type: 'string', length: 60, nullable: false)]
#[ORM\Column(name: 'name', type: Types::STRING, length: 60, nullable: false)]
#[Assert\NotBlank]
#[Assert\Length(min: 1, max: 60)]
private ?string $name = null;
#[ORM\Column(name: 'title', type: 'string', length: 255, nullable: false)]
#[ORM\Column(name: 'title', type: Types::STRING, length: 255, nullable: false)]
#[Assert\Length(max: 255)]
#[Assert\NotBlank]
private ?string $title = null;
@@ -37,41 +38,41 @@ class InvoiceTemplate
#[Assert\Length(max: 255)]
#[Assert\NotBlank]
private ?string $company = null;
#[ORM\Column(name: 'vat_id', type: 'string', length: 50, nullable: true)]
#[ORM\Column(name: 'vat_id', type: Types::STRING, length: 50, nullable: true)]
#[Assert\Length(max: 50)]
private ?string $vatId = null;
#[ORM\Column(name: 'address', type: 'text', nullable: true)]
#[ORM\Column(name: 'address', type: Types::TEXT, nullable: true)]
private ?string $address = null;
#[ORM\Column(name: 'contact', type: 'text', nullable: true)]
#[ORM\Column(name: 'contact', type: Types::TEXT, nullable: true)]
private ?string $contact = null;
#[ORM\Column(name: 'due_days', type: 'integer', length: 3, nullable: false)]
#[ORM\Column(name: 'due_days', type: Types::INTEGER, length: 3, nullable: false)]
#[Assert\NotNull]
#[Assert\Range(min: 0, max: 999)]
private ?int $dueDays = 30;
#[ORM\Column(name: 'vat', type: 'float', nullable: false)]
#[ORM\Column(name: 'vat', type: Types::FLOAT, nullable: false)]
#[Assert\NotNull]
#[Assert\Range(min: 0.0, max: 99.99)]
private ?float $vat = 0.00;
#[ORM\Column(name: 'calculator', type: 'string', length: 20, nullable: false)]
#[ORM\Column(name: 'calculator', type: Types::STRING, length: 20, nullable: false)]
#[Assert\NotBlank]
#[Assert\Length(max: 20)]
private string $calculator = 'default';
#[ORM\Column(name: 'number_generator', type: 'string', length: 20, nullable: false)]
#[ORM\Column(name: 'number_generator', type: Types::STRING, length: 20, nullable: false)]
#[Assert\NotBlank]
#[Assert\Length(max: 20)]
private string $numberGenerator = 'default';
#[ORM\Column(name: 'renderer', type: 'string', length: 20, nullable: false)]
#[ORM\Column(name: 'renderer', type: Types::STRING, length: 20, nullable: false)]
#[Assert\NotBlank]
#[Assert\Length(max: 20)]
private string $renderer = 'default';
#[ORM\Column(name: 'payment_terms', type: 'text', nullable: true)]
#[ORM\Column(name: 'payment_terms', type: Types::TEXT, nullable: true)]
private ?string $paymentTerms = null;
#[ORM\Column(name: 'payment_details', type: 'text', nullable: true)]
#[ORM\Column(name: 'payment_details', type: Types::TEXT, nullable: true)]
private ?string $paymentDetails = null;
/**
* Used for translations and formatting money, numbers, dates and time.
*/
#[ORM\Column(name: 'language', type: 'string', length: 6, nullable: false)]
#[ORM\Column(name: 'language', type: Types::STRING, length: 6, nullable: false)]
#[Assert\NotBlank]
private ?string $language = 'en';