src/Entity/UploadBatch.php line 12

Open in your IDE?
  1. <?php
  2. // src/Entity/UploadBatch.php
  3. namespace App\Entity;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Component\Uid\Uuid;
  6. /**
  7.  * @ORM\Entity
  8.  * @ORM\Table(name="upload_batch")
  9.  */
  10. class UploadBatch
  11. {
  12.     /**
  13.      * @ORM\Id
  14.      * @ORM\GeneratedValue
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private ?int $id null;
  18.     /**
  19.      * @ORM\Column(type="string", length=36, unique=true)
  20.      */
  21.     private string $uuid;
  22.     /**
  23.      * @ORM\Column(type="string", length=255)
  24.      */
  25.     private string $originalFilename;
  26.     /**
  27.      * @ORM\Column(type="string", length=255)
  28.      */
  29.     private string $storedFilename;
  30.     /**
  31.      * @ORM\Column(type="string", length=10)
  32.      */
  33.     private string $extension;
  34.     /**
  35.      * @ORM\Column(type="string", length=100)
  36.      */
  37.     private string $mimeType;
  38.     /**
  39.      * @ORM\Column(type="integer")
  40.      */
  41.     private int $fileSize;
  42.     /**
  43.      * @ORM\Column(type="string", length=20, options={"default":"pending"})
  44.      */
  45.     private string $status 'pending';
  46.     /**
  47.      * @ORM\Column(type="datetime_immutable")
  48.      */
  49.     private \DateTimeImmutable $uploadedAt;
  50.     /**
  51.      * @ORM\OneToOne(targetEntity=DeclarationConducteur::class, mappedBy="uploadBatch", cascade={"persist"})
  52.      */
  53.     private ?DeclarationConducteur $declaration null;
  54.     public function __construct()
  55.     {
  56.             // use a safe string cast to ensure compatibility with tooling/versions
  57.             $this->uuid sprintf(
  58.                 '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
  59.                 mt_rand(00xffff), mt_rand(00xffff),
  60.                 mt_rand(00xffff),
  61.                 mt_rand(00x0fff) | 0x4000,
  62.                 mt_rand(00x3fff) | 0x8000,
  63.                 mt_rand(00xffff), mt_rand(00xffff), mt_rand(00xffff)
  64.             );
  65.             $this->uploadedAt = new \DateTimeImmutable();
  66.     }
  67.     // ───── Getters & Setters ─────
  68.     public function getId(): ?int { return $this->id; }
  69.     public function getUuid(): string { return $this->uuid; }
  70.     public function getOriginalFilename(): string { return $this->originalFilename; }
  71.     public function setOriginalFilename(string $v): self $this->originalFilename $v; return $this; }
  72.     public function getStoredFilename(): string { return $this->storedFilename; }
  73.     public function setStoredFilename(string $v): self $this->storedFilename $v; return $this; }
  74.     public function getExtension(): string { return $this->extension; }
  75.     public function setExtension(string $v): self $this->extension strtolower($v); return $this; }
  76.     public function getMimeType(): string { return $this->mimeType; }
  77.     public function setMimeType(string $v): self $this->mimeType $v; return $this; }
  78.     public function getFileSize(): int { return $this->fileSize; }
  79.     public function setFileSize(int $v): self $this->fileSize $v; return $this; }
  80.     public function getStatus(): string { return $this->status; }
  81.     public function setStatus(string $v): self $this->status $v; return $this; }
  82.     public function getUploadedAt(): \DateTimeImmutable { return $this->uploadedAt; }
  83.     public function setUploadedAt(\DateTimeImmutable $uploadedAt): self
  84.     {
  85.         $this->uploadedAt $uploadedAt;
  86.         return $this;
  87.     }
  88.     public function getDeclaration(): ?DeclarationConducteur { return $this->declaration; }
  89.     public function setDeclaration(?DeclarationConducteur $d): self $this->declaration $d; return $this; }
  90. }