diff --git a/composer.json b/composer.json
index ec69d3a..f3c687c 100644
--- a/composer.json
+++ b/composer.json
@@ -18,8 +18,8 @@
"require": {
"php": ">=8.0",
"doctrine/dbal": "^2.9|^3.1.4",
- "doctrine/doctrine-bundle": "^2.2",
- "doctrine/orm": "^2.6",
+ "doctrine/doctrine-bundle": "^2.9",
+ "doctrine/orm": "^2.9",
"symfony/security-bundle": "^5.4|^6.0",
"symfony/framework-bundle": "^5.4|^6.0"
},
diff --git a/src/DataDogAuditBundle.php b/src/DataDogAuditBundle.php
index 6456932..53db9d1 100644
--- a/src/DataDogAuditBundle.php
+++ b/src/DataDogAuditBundle.php
@@ -13,9 +13,8 @@ public function build(ContainerBuilder $container): void
parent::build($container);
if (class_exists(DoctrineOrmMappingsPass::class)) {
- $namespaces = [__DIR__.'/Resources/config/doctrine' => 'DataDog\\AuditBundle\\Entity'];
$container->addCompilerPass(
- DoctrineOrmMappingsPass::createXmlMappingDriver($namespaces)
+ DoctrineOrmMappingsPass::createAttributeMappingDriver(['DataDog\\AuditBundle\\Entity'], [__DIR__.'/Entity'])
);
}
}
diff --git a/src/Entity/Association.php b/src/Entity/Association.php
index 6f29272..4f53c2f 100644
--- a/src/Entity/Association.php
+++ b/src/Entity/Association.php
@@ -2,18 +2,31 @@
namespace DataDog\AuditBundle\Entity;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity]
+#[ORM\Table(name: 'audit_associations')]
+#[ORM\Index(columns: ['fk'])]
class Association
{
+ #[ORM\Column(type: 'bigint', options: ['unsigned' => true])]
+ #[ORM\Id]
+ #[ORM\GeneratedValue(strategy: 'IDENTITY')]
private ?int $id;
+ #[ORM\Column(length: 128)]
private string $typ;
+ #[ORM\Column(length: 128, nullable: true)]
private ?string $tbl;
+ #[ORM\Column(nullable: true)]
private ?string $label;
- private string $fk;
+ #[ORM\Column(type: 'integer', options: ['unsigned' => true])]
+ private int $fk;
+ #[ORM\Column]
private string $class;
public function getId(): ?int
@@ -43,7 +56,7 @@ public function getLabel(): ?string
return $this->label;
}
- public function getFk(): string
+ public function getFk(): int
{
return $this->fk;
}
diff --git a/src/Entity/AuditLog.php b/src/Entity/AuditLog.php
index e019cd3..b8f8d04 100644
--- a/src/Entity/AuditLog.php
+++ b/src/Entity/AuditLog.php
@@ -2,22 +2,40 @@
namespace DataDog\AuditBundle\Entity;
+use Doctrine\ORM\Mapping as ORM;
+
+#[ORM\Entity]
+#[ORM\Table(name: 'audit_logs')]
+#[ORM\Index(columns: ['logged_at'])]
class AuditLog
{
+ #[ORM\Column(type: 'bigint', options: ['unsigned' => true])]
+ #[ORM\Id]
+ #[ORM\GeneratedValue(strategy: 'IDENTITY')]
private ?int $id;
+ #[ORM\Column(length: 12)]
private string $action;
+ #[ORM\Column(length: 128)]
private string $tbl;
+ #[ORM\OneToOne(targetEntity: Association::class)]
+ #[ORM\JoinColumn(unique: true, nullable: false)]
private Association $source;
+ #[ORM\OneToOne(targetEntity: Association::class)]
+ #[ORM\JoinColumn(unique: true)]
private ?Association $target;
+ #[ORM\OneToOne(targetEntity: Association::class)]
+ #[ORM\JoinColumn(unique: true)]
private ?Association $blame;
+ #[ORM\Column(type: 'json', nullable: true)]
private ?array $diff;
+ #[ORM\Column(name: 'logged_at', type: 'datetime')]
private \DateTimeInterface $loggedAt;
public function getId(): ?int
diff --git a/src/Resources/config/doctrine/Association.orm.xml b/src/Resources/config/doctrine/Association.orm.xml
deleted file mode 100644
index fce2631..0000000
--- a/src/Resources/config/doctrine/Association.orm.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Resources/config/doctrine/AuditLog.orm.xml b/src/Resources/config/doctrine/AuditLog.orm.xml
deleted file mode 100644
index d2c2df7..0000000
--- a/src/Resources/config/doctrine/AuditLog.orm.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-