['client_rib:read']], ), new Post( uriTemplate: '/clients/{clientId}/ribs', uriVariables: [ 'clientId' => new Link(fromClass: Client::class, toProperty: 'client'), ], security: "is_granted('commercial.clients.accounting.manage')", normalizationContext: ['groups' => ['client_rib:read']], denormalizationContext: ['groups' => ['client_rib:write']], processor: ClientRibProcessor::class, ), new Patch( security: "is_granted('commercial.clients.accounting.manage')", normalizationContext: ['groups' => ['client_rib:read']], denormalizationContext: ['groups' => ['client_rib:write']], processor: ClientRibProcessor::class, ), new Delete( security: "is_granted('commercial.clients.accounting.manage')", processor: ClientRibProcessor::class, ), ], )] #[ORM\Entity(repositoryClass: DoctrineClientRibRepository::class)] #[ORM\Table(name: 'client_rib')] #[ORM\Index(name: 'idx_client_rib_client', columns: ['client_id'])] #[Auditable] class ClientRib implements TimestampableInterface, BlamableInterface { use TimestampableBlamableTrait; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['client_rib:read'])] private ?int $id = null; #[ORM\ManyToOne(targetEntity: Client::class, inversedBy: 'ribs')] #[ORM\JoinColumn(name: 'client_id', referencedColumnName: 'id', nullable: false, onDelete: 'CASCADE')] private ?Client $client = null; #[ORM\Column(length: 120)] #[Assert\NotBlank] #[Assert\Length(max: 120, normalizer: 'trim')] #[Groups(['client_rib:read', 'client_rib:write'])] private ?string $label = null; #[ORM\Column(length: 20)] #[Assert\NotBlank] #[Assert\Bic] #[Groups(['client_rib:read', 'client_rib:write'])] private ?string $bic = null; #[ORM\Column(length: 34)] #[Assert\NotBlank] #[Assert\Iban] #[Groups(['client_rib:read', 'client_rib:write'])] private ?string $iban = null; #[ORM\Column(options: ['default' => 0])] #[Groups(['client_rib:read', 'client_rib:write'])] private int $position = 0; public function getId(): ?int { return $this->id; } public function getClient(): ?Client { return $this->client; } public function setClient(?Client $client): static { $this->client = $client; return $this; } public function getLabel(): ?string { return $this->label; } public function setLabel(string $label): static { $this->label = $label; return $this; } public function getBic(): ?string { return $this->bic; } public function setBic(string $bic): static { $this->bic = $bic; return $this; } public function getIban(): ?string { return $this->iban; } public function setIban(string $iban): static { $this->iban = $iban; return $this; } public function getPosition(): int { return $this->position; } public function setPosition(int $position): static { $this->position = $position; return $this; } }