<?php
namespace App\Entity\ChannelUserData\Cursus;
use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackEntity;
use Nellapp\Bundle\SDKBundle\TrackData\Attribute\TrackFIeld;
use App\Enum\ChannelUserData\Activity\CursusActivityTagEnum;
use App\Repository\ChannelUserData\Cursus\PurchaseOrderRepository;
use Doctrine\ORM\Mapping as ORM;
use DrosalysWeb\ObjectExtensions\Blame\Model\BlameInterface;
use DrosalysWeb\ObjectExtensions\Blame\Model\BlameTrait;
use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampInterface;
use DrosalysWeb\ObjectExtensions\Timestamp\Model\TimestampTrait;
use Symfony\Component\Validator\Constraints as Assert;
#[
ORM\Entity(repositoryClass: PurchaseOrderRepository::class),
ORM\Table(name: 'channel_user_data_cursus_purchase_order'),
TrackEntity(
name: 'purchaseOrder.entity.track_data.entity.name',
fieldGroups: [
'purchaseOrder' => [
'tags' => [ CursusActivityTagEnum::FOUNDING ]
]
],
),
]
class PurchaseOrder implements TimestampInterface, BlameInterface
{
use TimestampTrait;
use BlameTrait;
#[ORM\Id, ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\OneToOne(inversedBy: 'purchaseOrder', targetEntity: Founder::class)]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?Founder $founder = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
#[
Assert\Length(max: 255),
]
#[TrackFIeld(name: 'purchaseOrder.entity.number.label', fieldKey: 'purchaseOrder')]
private ?string $number = null;
public function getId(): ?int
{
return $this->id;
}
public function getFounder(): ?Founder
{
return $this->founder;
}
public function setFounder(?Founder $founder): PurchaseOrder
{
$this->founder = $founder;
return $this;
}
public function getNumber(): ?string
{
return $this->number;
}
public function setNumber(?string $number): PurchaseOrder
{
$this->number = $number;
return $this;
}
}