src/Domain/Media/Model/AnalyticalMedia.php line 17

Open in your IDE?
  1. <?php
  2. namespace Whater\Domain\Media\Model;
  3. use BornFree\TacticianDomainEvent\Recorder\ContainsRecordedEvents;
  4. use BornFree\TacticianDomainEvent\Recorder\EventRecorderCapabilities;
  5. use Ramsey\Uuid\Uuid;
  6. use Whater\Domain\Common\Exception\InvalidUUIDException;
  7. use Whater\Domain\User\Model\User;
  8. use Whater\Domain\Whater\Model\Analytical;
  9. /**
  10. * Class AnalyticalMedia
  11. *
  12. * @package Whater\Domain\Blog\Model
  13. */
  14. class AnalyticalMedia implements ContainsRecordedEvents
  15. {
  16. use EventRecorderCapabilities;
  17. /**
  18. * @var string
  19. */
  20. private $uuid;
  21. /**
  22. * @var null|\DateTime
  23. */
  24. private $createdAt;
  25. /**
  26. * @var null|\DateTime
  27. */
  28. private $updatedAt;
  29. /**
  30. * @var Analytical
  31. */
  32. private $analytical;
  33. /**
  34. * @var User
  35. */
  36. private $createdBy;
  37. /**
  38. * @var string
  39. */
  40. private $fileName;
  41. /**
  42. * @var integer
  43. */
  44. private $fileSize;
  45. /**
  46. * @var string
  47. */
  48. private $fileMimeType;
  49. /**
  50. * @var string
  51. */
  52. private $fileOriginalname;
  53. /**
  54. * @var array
  55. */
  56. private $fileDimensions;
  57. /**
  58. * @var File
  59. * NOTE: This is not a mapped field of entity metadata, just a simple property.
  60. */
  61. private $fileAnalyticalMedia;
  62. public function __construct(
  63. string $analyticalMediaId = null,
  64. Analytical $analytical = null,
  65. User $createdBy = null
  66. ) {
  67. try {
  68. $this->uuid = Uuid::fromString($analyticalMediaId ?: Uuid::uuid4())->toString();
  69. } catch (\InvalidArgumentException $e) {
  70. throw new InvalidUUIDException();
  71. }
  72. $this->createdAt = new \DateTime();
  73. $this->analytical = $analytical;
  74. $this->createdBy = $createdBy;
  75. $this->updatedAt = new \DateTime();
  76. }
  77. public function setData(Analytical $analytical, User $createdBy)
  78. {
  79. $this->analytical = $analytical;
  80. $this->createdBy = $createdBy;
  81. $this->updatedAt = new \DateTime();
  82. }
  83. /**
  84. * @return string
  85. */
  86. public function id(): string
  87. {
  88. return $this->uuid;
  89. }
  90. /**
  91. * @return \DateTime
  92. */
  93. public function createdAt(): \DateTime
  94. {
  95. return $this->createdAt;
  96. }
  97. /**
  98. * @return \DateTime
  99. */
  100. public function updatedAt(): \DateTime
  101. {
  102. return $this->updatedAt;
  103. }
  104. /**
  105. * @return Analytical
  106. */
  107. public function analytical(): Analytical
  108. {
  109. return $this->analytical;
  110. }
  111. /**
  112. * @return User|null
  113. */
  114. public function createdBy(): ?User
  115. {
  116. return $this->createdBy;
  117. }
  118. public function setFileName(?string $fileName): void
  119. {
  120. $this->fileName = $fileName;
  121. }
  122. public function getFileName(): ?string
  123. {
  124. return $this->fileName;
  125. }
  126. public function setFileSize(?int $fileSize): void
  127. {
  128. $this->fileSize = $fileSize;
  129. }
  130. public function getFileSize(): ?int
  131. {
  132. return $this->fileSize;
  133. }
  134. public function setFileMimeType(?string $fileMimeType): void
  135. {
  136. $this->fileMimeType = $fileMimeType;
  137. }
  138. public function getFileMimeType(): ?string
  139. {
  140. return $this->fileMimeType;
  141. }
  142. public function setFileOriginalname(?string $fileOriginalname): void
  143. {
  144. $this->fileOriginalname = $fileOriginalname;
  145. }
  146. public function getFileOriginalname(): ?string
  147. {
  148. return $this->fileOriginalname;
  149. }
  150. public function setFileDimensions(?array $fileDimensions): void
  151. {
  152. $this->fileDimensions = $fileDimensions;
  153. }
  154. public function getFileDimensions(): ?array
  155. {
  156. return $this->fileDimensions;
  157. }
  158. public function setFileAnalyticalMedia($fileAnalyticalMedia): void
  159. {
  160. $this->fileAnalyticalMedia = $fileAnalyticalMedia;
  161. }
  162. public function getFileAnalyticalMedia()
  163. {
  164. return $this->fileAnalyticalMedia;
  165. }
  166. public function serialize()
  167. {
  168. return serialize(array(
  169. $this->uuid
  170. ));
  171. }
  172. public function unserialize($serialized)
  173. {
  174. list(
  175. $this->uuid
  176. ) = unserialize($serialized);
  177. }
  178. }