use Doctrine\ORM\Mapping as ORM;
use DualMedia\DoctrineEventDistributorBundle\Interfaces\EntityInterface;
#[ORM\Entity]
class Item implements EntityInterface
{
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
#[ORM\Column(type: 'integer')]
private ?int $id = null;
#[ORM\Column(type: 'smallint')]
private ?int $status = null;
public function getId()
{
return $this->id;
}
public function getStatus(): ?int
{
return $this->status;
}
public function setStatus(
int $status
): self {
$this->status = $status;
return $this;
}
}
use DualMedia\DoctrineEventDistributorBundle\Attributes\PrePersistEvent;
use DualMedia\DoctrineEventDistributorBundle\Event\AbstractEntityEvent;
#[PrePersistEvent]
abstract class ItemEvent extends AbstractEntityEvent
{
public static function getEntityClass(): ?string
{
return Item::class;
}
}
use \DualMedia\DoctrineEventConverterBundle\Attributes\SubEvent;
use \DualMedia\DoctrineEventConverterBundle\Model\Change;
#[SubEvent("PendingToComplete", changes: [new Change('status', ItemStatusEnum::Pending, ItemStatusEnum::Complete)])]