src/Entity/Library.php line 512

Open in your IDE?
  1. <?php
  2. namespace EADPlataforma\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. use Symfony\Component\HttpFoundation\File\File;
  6. use EADPlataforma\Validator\Constraints as EADAssert;
  7. use EADPlataforma\Enum\LibraryEnum;
  8. use EADPlataforma\Util\StringUtil;
  9. use \DateTime;
  10. /**
  11.  * Library
  12.  *
  13.  * @ORM\Table(name="library", indexes={
  14.  *      @ORM\Index(name="fk_library_record_user_id", columns={"record_user_id"}),
  15.  *      @ORM\Index(name="fk_library_record_library_id", columns={"record_library_id"}),
  16.  *      @ORM\Index(name="fk_library_user_id", columns={"user_id"}),
  17.  *      @ORM\Index(name="fk_library_live_end_user_id", columns={"live_end_user_id"}),
  18.  *      @ORM\Index(name="fk_library_user_delete_id", columns={"user_delete_id"})
  19.  * })
  20.  *
  21.  * @ORM\Entity(repositoryClass="EADPlataforma\Repository\LibraryRepository")
  22.  */
  23. class Library
  24. {
  25.     /**
  26.      * @var int
  27.      *
  28.      * @ORM\Column(name="id", type="integer", nullable=false)
  29.      * @ORM\Id
  30.      * @ORM\GeneratedValue(strategy="IDENTITY")
  31.      */
  32.     private $id;
  33.     /**
  34.      * @Assert\NotBlank(
  35.      *      message = "Deleted not informed"
  36.      * )
  37.      *
  38.      * @Assert\Choice(
  39.      *      choices = { 
  40.      *                      LibraryEnum::ITEM_NO_DELETED, 
  41.      *                      LibraryEnum::ITEM_ON_TRASH,
  42.      *                      LibraryEnum::ITEM_DELETED
  43.      *                },
  44.      *      message = "Delete Option Invalid"
  45.      * )
  46.      *
  47.      * @var int
  48.      *
  49.      * @ORM\Column(name="deleted", type="integer", nullable=false, options={"default"="0"})
  50.      */
  51.     private $deleted LibraryEnum::ITEM_NO_DELETED;
  52.     /**
  53.      * @Assert\NotBlank(
  54.      *    message = "Title not informed"
  55.      * )
  56.      * 
  57.      * @Assert\Length(
  58.      *      min = 0,
  59.      *      max = 145
  60.      * )
  61.      *
  62.      * @var string
  63.      *
  64.      * @ORM\Column(name="title", type="string", length=150, nullable=false)
  65.      */
  66.     private $title;
  67.     /**
  68.      * @Assert\NotBlank(
  69.      *    message = "Status not informed"
  70.      * )
  71.      *
  72.      * @Assert\Choice(
  73.      *      choices = { LibraryEnum::DRAFT, LibraryEnum::PUBLISHED },
  74.      *      message = "Status Invalid"
  75.      * )
  76.      *
  77.      * @var int
  78.      *
  79.      * @ORM\Column(name="status", type="integer", nullable=false, options={"default"="0"})
  80.      */
  81.     private $status LibraryEnum::DRAFT;
  82.     /**
  83.      * @Assert\NotBlank(
  84.      *    message = "Origin not informed"
  85.      * )
  86.      *
  87.      * @Assert\Choice(
  88.      *      choices = { 
  89.      *                      LibraryEnum::LESSON,
  90.      *                      LibraryEnum::LESSON_DOWNLOAD,
  91.      *                      LibraryEnum::QUESTION,
  92.      *                      LibraryEnum::LIBRARY,
  93.      *                      LibraryEnum::RECORD
  94.      *                },
  95.      *      message = "Origin Invalid"
  96.      * )
  97.      *
  98.      * @var int
  99.      *
  100.      * @ORM\Column(name="origin", type="integer", nullable=false)
  101.      */
  102.     private $origin;
  103.     /**
  104.      * @Assert\NotBlank(
  105.      *    message = "Download number not informed"
  106.      * )
  107.      *
  108.      * @var int
  109.      *
  110.      * @ORM\Column(name="download_number", type="integer", nullable=false, options={"default"="0"})
  111.      */
  112.     private $downloadNumber 0;
  113.     /**
  114.      * @Assert\Choice(
  115.      *      choices = { 
  116.      *                      LibraryEnum::CONTENT_EMBED,
  117.      *                      LibraryEnum::CONTENT_FILES,
  118.      *                      LibraryEnum::CONTENT_AUDIO,
  119.      *                      LibraryEnum::CONTENT_TEXT,
  120.      *                      LibraryEnum::CONTENT_VIDEO,
  121.      *                      LibraryEnum::CONTENT_LIVE,
  122.      *                      LibraryEnum::CONTENT_CONFERENCE,
  123.      *                      LibraryEnum::CONTENT_VIDEO_FILE,
  124.      *                      LibraryEnum::CONTENT_EXTERNAL_LIVE,
  125.      *                      LibraryEnum::CONTENT_NEW_LIVE
  126.      *                },
  127.      *      message = "Type Invalid"
  128.      * )
  129.      *
  130.      * @var int
  131.      *
  132.      * @ORM\Column(name="type", type="integer", nullable=true)
  133.      */
  134.     private $type;
  135.     /**
  136.      * @Assert\NotBlank(
  137.      *      message = "Link not informed",
  138.      *      groups  = "linkType"
  139.      * )
  140.      *
  141.      * @var string|null
  142.      *
  143.      * @ORM\Column(name="link", type="text", length=0, nullable=true)
  144.      */
  145.     private $link;
  146.     /**
  147.      * @Assert\NotBlank(
  148.      *      message = "Text not informed",
  149.      *      groups  = "textType"
  150.      * )
  151.      *
  152.      * @var string|null
  153.      *
  154.      * @ORM\Column(name="text", type="text", length=0, nullable=true)
  155.      */
  156.     private $text;
  157.     /**
  158.      * @Assert\File(
  159.      *     maxSize = "4000M",
  160.      *     maxSizeMessage = "File is to large",
  161.      *     groups  = "fileType"
  162.      * )
  163.      */
  164.     protected $file;
  165.     /**
  166.      * @Assert\NotBlank(
  167.      *      message = "File not informed",
  168.      *      groups  = "fileType"
  169.      * )
  170.      * 
  171.      * @Assert\Length(
  172.      *      min = 0,
  173.      *      max = 250
  174.      * )
  175.      *
  176.      * @var string|null
  177.      *
  178.      * @ORM\Column(name="file", type="string", length=255, nullable=true)
  179.      */
  180.     private $fileName;
  181.     /**
  182.      * @Assert\NotBlank(
  183.      *      message = "File Size informed",
  184.      *      groups  = "fileType"
  185.      * )
  186.      *
  187.      * @var int|null
  188.      *
  189.      * @ORM\Column(name="file_size", type="integer", nullable=true)
  190.      */
  191.     private $fileSize;
  192.     /**
  193.      * @Assert\NotBlank(
  194.      *      message = "File Extension not informed",
  195.      *      groups  = "fileType"
  196.      * )
  197.      *
  198.      * @var string|null
  199.      *
  200.      * @ORM\Column(name="file_extension", type="string", length=5, nullable=true, options={"fixed"=true})
  201.      */
  202.     private $fileExtension;
  203.     /**
  204.      * @Assert\NotBlank(
  205.      *      message = "Vimeo Id not informed",
  206.      *      groups  = "vimeoFileType"
  207.      * )
  208.      *
  209.      * @var int|null
  210.      *
  211.      * @ORM\Column(name="vimeo_id", type="integer", nullable=true)
  212.      */
  213.     private $vimeoId;
  214.     /**
  215.      * @Assert\NotBlank(
  216.      *      message = "Vimeo Id not informed",
  217.      *      groups  = "vimeoFileType"
  218.      * )
  219.      *
  220.      * @var string|null
  221.      *
  222.      * @ORM\Column(name="vimeo_video_id", type="string", length=255, nullable=true)
  223.      */
  224.     private $vimeoVideoId;
  225.     /**
  226.      * @Assert\NotBlank(
  227.      *      message = "Vdocipher Id not informed",
  228.      *      groups  = "videFileType"
  229.      * )
  230.      *
  231.      * @var string|null
  232.      *
  233.      * @ORM\Column(name="vdocipher_video_id", type="string", length=255, nullable=true)
  234.      */
  235.     private $vdocipherVideoId;
  236.     /**
  237.      * @var int|null
  238.      *
  239.      * @ORM\Column(name="pages_number", type="integer", nullable=true)
  240.      */
  241.     private $pagesNumber;
  242.     /**
  243.      * @var string|null
  244.      *
  245.      * @ORM\Column(name="duration", type="string", length=10, nullable=true)
  246.      */
  247.     private $duration;
  248.     /**
  249.      * @EADAssert\DateTimeEAD(
  250.      *      message = "Live Start Invalid",
  251.      *      groups  = "liveType"
  252.      * )
  253.      *
  254.      * @var \DateTime|null
  255.      *
  256.      * @ORM\Column(name="live_start", type="datetime", nullable=true)
  257.      */
  258.     private $liveStart;
  259.     /**
  260.      * @var \DateTime|null
  261.      *
  262.      * @ORM\Column(name="live_start_real", type="datetime", nullable=true)
  263.      */
  264.     private $liveStartReal;
  265.     /**
  266.      * @EADAssert\DateTimeEAD(
  267.      *      message = "Live End Invalid"
  268.      * )
  269.      *
  270.      * @var \DateTime|null
  271.      *
  272.      * @ORM\Column(name="live_end", type="datetime", nullable=true)
  273.      */
  274.     private $liveEnd;
  275.     /**
  276.      * @Assert\Length(
  277.      *      min = 0,
  278.      *      max = 250
  279.      * )
  280.      * 
  281.      * @var string|null
  282.      *
  283.      * @ORM\Column(name="live_cover", type="string", length=255, nullable=true)
  284.      */
  285.     private $liveCover;
  286.     /**
  287.      * @Assert\NotBlank(
  288.      *      message = "Live Link Transmit Invalid",
  289.      *      groups  = "liveType"
  290.      * )
  291.      *
  292.      * @var string|null
  293.      *
  294.      * @ORM\Column(name="live_link_transmit", type="string", length=255, nullable=true)
  295.      */
  296.     private $liveLinkTransmit;
  297.     /**
  298.      * @Assert\NotBlank(
  299.      *      message = "Live Link Invalid",
  300.      *      groups  = "liveType"
  301.      * )
  302.      *
  303.      * @var string|null
  304.      *
  305.      * @ORM\Column(name="live_link", type="string", length=255, nullable=true)
  306.      */
  307.     private $liveLink;
  308.     /**
  309.      * @Assert\NotBlank(
  310.      *      message = "Live Token Invalid",
  311.      *      groups  = "liveType"
  312.      * )
  313.      *
  314.      * @var string|null
  315.      *
  316.      * @ORM\Column(name="live_token", type="string", length=255, nullable=true)
  317.      */
  318.     private $liveToken;
  319.     /**
  320.      * @Assert\NotBlank(
  321.      *      message = "Live Id Event Invalid",
  322.      *      groups  = "liveType"
  323.      * )
  324.      *
  325.      * @var string|null
  326.      *
  327.      * @ORM\Column(name="live_id_event", type="string", length=45, nullable=true)
  328.      */
  329.     private $liveIdEvent;
  330.     /**
  331.      * @Assert\NotBlank(
  332.      *    message = "Show Live Viewer Number not informed"
  333.      * )
  334.      *
  335.      * @Assert\Choice(
  336.      *      choices = { LibraryEnum::NO, LibraryEnum::YES },
  337.      *      message = "Show Live Viewer Number Invalid"
  338.      * )
  339.      *
  340.      * @var int
  341.      *
  342.      * @ORM\Column(name="show_live_viewer_number", type="integer", nullable=false, options={"default"="0"})
  343.      */
  344.     private $showLiveViewerNumber LibraryEnum::NO;
  345.     /**
  346.      * @Assert\NotBlank(
  347.      *    message = "Show Text Pdf not informed"
  348.      * )
  349.      *
  350.      * @Assert\Choice(
  351.      *      choices = { LibraryEnum::NO, LibraryEnum::YES },
  352.      *      message = "Show Text Pdf Invalid"
  353.      * )
  354.      *
  355.      * @var int
  356.      *
  357.      * @ORM\Column(name="show_text_pdf", type="integer", nullable=false, options={"default"="0"})
  358.      */
  359.     private $showTextPdf LibraryEnum::NO;
  360.     /**
  361.      * 
  362.      * @Assert\Choice(
  363.      *      choices = { LibraryEnum::SVG_OFF, LibraryEnum::SVG_ON },
  364.      *      message = "PDF Svg Mode invalid"
  365.      * )
  366.      *
  367.      * @var int
  368.      *
  369.      * @ORM\Column(name="pdf_svg_mode", type="integer", nullable=false, options={"default"="1"})
  370.      */
  371.     private $pdfSvgMode LibraryEnum::SVG_OFF;
  372.     /**
  373.      * 
  374.      * @Assert\Choice(
  375.      *      choices = { LibraryEnum::NO, LibraryEnum::YES },
  376.      *      message = "Record invalid"
  377.      * )
  378.      *
  379.      * @var int
  380.      *
  381.      * @ORM\Column(name="record", type="integer", nullable=false, options={"default"="0"})
  382.      */
  383.     private $record LibraryEnum::NO;
  384.     /**
  385.      * @Assert\NotBlank(
  386.      *    message = "User not informed"
  387.      * )
  388.      * 
  389.      * @Assert\Valid
  390.      *
  391.      * @var \User
  392.      *
  393.      * @ORM\ManyToOne(targetEntity="User")
  394.      * @ORM\JoinColumns({
  395.      *   @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
  396.      * })
  397.      */
  398.     private $user;
  399.     /**
  400.      * @Assert\Valid
  401.      *
  402.      * @var \User
  403.      *
  404.      * @ORM\ManyToOne(targetEntity="User")
  405.      * @ORM\JoinColumns({
  406.      *   @ORM\JoinColumn(name="record_user_id", referencedColumnName="id", nullable=false)
  407.      * })
  408.      */
  409.     private $recordUser;
  410.     /**
  411.      * @Assert\Valid
  412.      *
  413.      * @var \Library
  414.      *
  415.      * @ORM\ManyToOne(targetEntity="Library")
  416.      * @ORM\JoinColumns({
  417.      *   @ORM\JoinColumn(name="record_library_id", referencedColumnName="id", nullable=false)
  418.      * })
  419.      */
  420.     private $recordLibrary;
  421.     /**
  422.      * @Assert\Valid
  423.      *
  424.      * @var \EADPlataforma\Entity\User
  425.      *
  426.      * @ORM\ManyToOne(targetEntity="User")
  427.      * @ORM\JoinColumns({
  428.      *   @ORM\JoinColumn(name="live_end_user_id", referencedColumnName="id", nullable=true)
  429.      * })
  430.      */
  431.     private $liveEndUser;
  432.     /**
  433.      * @Assert\Valid
  434.      *
  435.      * @var \EADPlataforma\Entity\User
  436.      *
  437.      * @ORM\ManyToOne(targetEntity="User")
  438.      * @ORM\JoinColumns({
  439.      *   @ORM\JoinColumn(name="user_delete_id", referencedColumnName="id", nullable=true)
  440.      * })
  441.      */
  442.     private $userDelete;
  443.     /**
  444.      * @Assert\Choice(
  445.      *      choices = { 
  446.      *                      LibraryEnum::INDIVIDUAL, 
  447.      *                      LibraryEnum::CASCADE
  448.      *                },
  449.      *      message = "Type Delete Invalid"
  450.      * )
  451.      *
  452.      * @var int
  453.      *
  454.      * @ORM\Column(name="type_delete", type="integer", nullable=true)
  455.      */
  456.     private $typeDelete;
  457.     /**
  458.      * @EADAssert\DateTimeEAD(
  459.      *      message = "Date Delete Invalid"
  460.      * )
  461.      *
  462.      * @var \DateTime|null
  463.      *
  464.      * @ORM\Column(name="date_delete", type="datetime", nullable=true)
  465.      */
  466.     private $dateDelete;
  467.     public function getId(): ?int
  468.     {
  469.         return $this->id;
  470.     }
  471.     public function getTitle(): ?string
  472.     {
  473.         return StringUtil::fromUnicode(StringUtil::encodeStringStatic($this->title));
  474.     }
  475.     public function setTitle(string $title): self
  476.     {
  477.         $this->title StringUtil::toUnicode($title);
  478.         return $this;
  479.     }
  480.     public function getStatus(): ?int
  481.     {
  482.         return $this->status;
  483.     }
  484.     public function setStatus(int $status): self
  485.     {
  486.         $this->status $status;
  487.         return $this;
  488.     }
  489.     public function getOrigin(): ?int
  490.     {
  491.         return $this->origin;
  492.     }
  493.     public function setOrigin(int $origin): self
  494.     {
  495.         $this->origin $origin;
  496.         return $this;
  497.     }
  498.     public function getDownloadNumber(): ?int
  499.     {
  500.         return $this->downloadNumber;
  501.     }
  502.     public function setDownloadNumber(int $downloadNumber): self
  503.     {
  504.         $this->downloadNumber $downloadNumber;
  505.         return $this;
  506.     }
  507.     public function getType($string false)
  508.     {
  509.         if($string){
  510.             return $this->stringType($this->type);
  511.         }
  512.         return $this->type;
  513.     }
  514.     public function setType(?int $type): self
  515.     {
  516.         $this->type $type;
  517.         return $this;
  518.     }
  519.     public function getLink(): ?string
  520.     {
  521.         return html_entity_decode($this->link);
  522.     }
  523.     public function setLink(?string $link): self
  524.     {
  525.         $this->link $link;
  526.         return $this;
  527.     }
  528.     public function getText(): ?string
  529.     {
  530.         return StringUtil::fromUnicode(StringUtil::encodeStringStatic($this->text));
  531.     }
  532.     public function setText(?string $text): self
  533.     {
  534.         $this->text StringUtil::toUnicode($text);
  535.         return $this;
  536.     }
  537.     public function setFile($file): self
  538.     {
  539.         $this->file $file;
  540.         return $this;
  541.     }
  542.     public function getFile()
  543.     {
  544.         return $this->file;
  545.     }
  546.     public function getFileName(): ?string
  547.     {
  548.         return StringUtil::encodeStringStatic($this->fileName);
  549.     }
  550.     public function setFileName(?string $fileName): self
  551.     {
  552.         $this->fileName $fileName;
  553.         return $this;
  554.     }
  555.     public function getFileSize(): ?int
  556.     {
  557.         return $this->fileSize;
  558.     }
  559.     public function setFileSize(?int $fileSize): self
  560.     {
  561.         $this->fileSize $fileSize;
  562.         return $this;
  563.     }
  564.     public function getFileExtension(): ?string
  565.     {
  566.         return $this->fileExtension;
  567.     }
  568.     public function setFileExtension(?string $fileExtension): self
  569.     {
  570.         $this->fileExtension $fileExtension;
  571.         return $this;
  572.     }
  573.     public function getVimeoId(): ?int
  574.     {
  575.         return $this->vimeoId;
  576.     }
  577.     public function setVimeoId(?int $vimeoId): self
  578.     {
  579.         $this->vimeoId $vimeoId;
  580.         return $this;
  581.     }
  582.     public function getVimeoVideoId(): ?string
  583.     {
  584.         return $this->vimeoVideoId;
  585.     }
  586.     public function setVimeoVideoId(?string $vimeoVideoId): self
  587.     {
  588.         $this->vimeoVideoId $vimeoVideoId;
  589.         return $this;
  590.     }
  591.     public function getVdocipherVideoId(): ?string
  592.     {
  593.         return $this->vdocipherVideoId;
  594.     }
  595.     public function setVdocipherVideoId(?string $vdocipherVideoId): self
  596.     {
  597.         $this->vdocipherVideoId $vdocipherVideoId;
  598.         return $this;
  599.     }
  600.     public function getPagesNumber(): ?int
  601.     {
  602.         return $this->pagesNumber;
  603.     }
  604.     public function setPagesNumber(?int $pagesNumber): self
  605.     {
  606.         $this->pagesNumber $pagesNumber;
  607.         return $this;
  608.     }
  609.     public function getDuration(): ?string
  610.     {
  611.         return $this->duration;
  612.     }
  613.     public function setDuration(?string $duration): self
  614.     {   
  615.         $this->duration $duration;
  616.         
  617.         return $this;
  618.     }
  619.     public function getLiveStart($dateFormat 'Y-m-d H:i:s')
  620.     {
  621.         if($this->liveStart){
  622.             return $this->liveStart->format($dateFormat);
  623.         }
  624.         return $this->liveStart;
  625.     }
  626.     public function setLiveStart($liveStart): self
  627.     {
  628.         if($liveStart){
  629.             $liveStart DateTime::createFromFormat('Y-m-d H:i:s'$liveStart);
  630.         }
  631.         
  632.         $this->liveStart $liveStart;
  633.         return $this;
  634.     }
  635.     public function getLiveStartReal($dateFormat 'Y-m-d H:i:s')
  636.     {
  637.         if($this->liveStartReal){
  638.             return $this->liveStartReal->format($dateFormat);
  639.         }
  640.         return $this->liveStartReal;
  641.     }
  642.     public function setLiveStartReal($liveStartReal): self
  643.     {
  644.         if($liveStartReal){
  645.             $liveStartReal DateTime::createFromFormat('Y-m-d H:i:s'$liveStartReal);
  646.         }
  647.         
  648.         $this->liveStartReal $liveStartReal;
  649.         return $this;
  650.     }
  651.     public function getLiveEnd($dateFormat 'Y-m-d H:i:s')
  652.     {
  653.         if($this->liveEnd){
  654.             return $this->liveEnd->format($dateFormat);
  655.         }
  656.         return $this->liveEnd;
  657.     }
  658.     public function setLiveEnd($liveEnd): self
  659.     {
  660.         if($liveEnd){
  661.             $liveEnd DateTime::createFromFormat('Y-m-d H:i:s'$liveEnd);
  662.         }
  663.         
  664.         $this->liveEnd $liveEnd;
  665.         return $this;
  666.     }
  667.     public function getLiveCover(): ?string
  668.     {
  669.         return $this->liveCover;
  670.     }
  671.     public function setLiveCover(?string $liveCover): self
  672.     {
  673.         $this->liveCover $liveCover;
  674.         return $this;
  675.     }
  676.     public function getLiveLinkTransmit(): ?string
  677.     {
  678.         return $this->liveLinkTransmit;
  679.     }
  680.     public function setLiveLinkTransmit(?string $liveLinkTransmit): self
  681.     {
  682.         $this->liveLinkTransmit $liveLinkTransmit;
  683.         return $this;
  684.     }
  685.     public function getLiveLink(): ?string
  686.     {
  687.         return $this->liveLink;
  688.     }
  689.     public function setLiveLink(?string $liveLink): self
  690.     {
  691.         $this->liveLink $liveLink;
  692.         return $this;
  693.     }
  694.     public function getLiveToken(): ?string
  695.     {
  696.         return $this->liveToken;
  697.     }
  698.     public function setLiveToken(?string $liveToken): self
  699.     {
  700.         $this->liveToken $liveToken;
  701.         return $this;
  702.     }
  703.     public function getLiveIdEvent(): ?string
  704.     {
  705.         return $this->liveIdEvent;
  706.     }
  707.     public function setLiveIdEvent(?string $liveIdEvent): self
  708.     {
  709.         $this->liveIdEvent $liveIdEvent;
  710.         return $this;
  711.     }
  712.     public function getShowLiveViewerNumber(): ?int
  713.     {
  714.         return $this->showLiveViewerNumber;
  715.     }
  716.     public function setShowLiveViewerNumber(?int $showLiveViewerNumber): self
  717.     {
  718.         $this->showLiveViewerNumber $showLiveViewerNumber;
  719.         return $this;
  720.     }
  721.     public function getShowTextPdf(): ?int
  722.     {
  723.         return $this->showTextPdf;
  724.     }
  725.     public function setShowTextPdf(?int $showTextPdf): self
  726.     {
  727.         $this->showTextPdf $showTextPdf;
  728.         return $this;
  729.     }
  730.     public function getPdfSvgMode(): ?int
  731.     {
  732.         return $this->pdfSvgMode;
  733.     }
  734.     public function setPdfSvgMode(int $pdfSvgMode): self
  735.     {
  736.         $this->pdfSvgMode $pdfSvgMode;
  737.         return $this;
  738.     }
  739.     public function getRecord(): ?int
  740.     {
  741.         return $this->record;
  742.     }
  743.     public function setRecord(int $record): self
  744.     {
  745.         $this->record $record;
  746.         return $this;
  747.     }
  748.     public function getUser(): ?User
  749.     {
  750.         return $this->user;
  751.     }
  752.     public function setUser(?User $user): self
  753.     {
  754.         $this->user $user;
  755.         return $this;
  756.     }
  757.     public function getRecordUser(): ?User
  758.     {
  759.         return $this->recordUser;
  760.     }
  761.     public function setRecordUser(?User $recordUser): self
  762.     {
  763.         $this->recordUser $recordUser;
  764.         return $this;
  765.     }
  766.     public function getRecordLibrary(): ?Library
  767.     {
  768.         return $this->recordLibrary;
  769.     }
  770.     public function setRecordLibrary(?Library $recordLibrary): self
  771.     {
  772.         $this->recordLibrary $recordLibrary;
  773.         return $this;
  774.     }
  775.     public function getLiveEndUser(): ?User
  776.     {
  777.         return $this->liveEndUser;
  778.     }
  779.     public function setLiveEndUser(?User $liveEndUser): self
  780.     {
  781.         $this->liveEndUser $liveEndUser;
  782.         return $this;
  783.     }
  784.     public function getUserDelete(): ?User
  785.     {
  786.         return $this->userDelete;
  787.     }
  788.     public function setUserDelete(?User $userDelete): self
  789.     {
  790.         $this->userDelete $userDelete;
  791.         return $this;
  792.     }
  793.     public function getDateDelete($dateFormat 'Y-m-d H:i:s')
  794.     {
  795.         if($this->dateDelete){
  796.             return $this->dateDelete->format($dateFormat);
  797.         }
  798.         return $this->dateDelete;
  799.     }
  800.     public function setDateDelete($dateDelete): self
  801.     {
  802.         if(!empty($dateDelete)){
  803.             $dateDelete DateTime::createFromFormat('Y-m-d H:i:s'$dateDelete);
  804.         }
  805.         
  806.         $this->dateDelete $dateDelete;
  807.         return $this;
  808.     }
  809.     public function isLive(): bool
  810.     {
  811.         return ($this->deleted == LibraryEnum::ITEM_NO_DELETED);
  812.     }
  813.     public function exist(): bool
  814.     {
  815.         return ($this->deleted != LibraryEnum::ITEM_DELETED);
  816.     }
  817.     public function individual(): self
  818.     {
  819.         $this->typeDelete LibraryEnum::INDIVIDUAL;
  820.         return $this;
  821.     }
  822.     public function cascade(): self
  823.     {
  824.         $this->typeDelete LibraryEnum::CASCADE;
  825.         return $this;
  826.     }
  827.     public function isOnTrash(): bool
  828.     {
  829.         return ($this->deleted == LibraryEnum::ITEM_ON_TRASH);
  830.     }
  831.     public function isDeleted(): bool
  832.     {
  833.         return ($this->deleted == LibraryEnum::ITEM_DELETED);
  834.     }
  835.     public function restore(): self
  836.     {
  837.         $this->deleted LibraryEnum::ITEM_NO_DELETED;
  838.         return $this;
  839.     }
  840.     public function trash(): self
  841.     {
  842.         $this->deleted LibraryEnum::ITEM_ON_TRASH;
  843.         return $this;
  844.     }
  845.     public function delete(): self
  846.     {
  847.         $this->deleted LibraryEnum::ITEM_DELETED;
  848.         return $this;
  849.     }
  850.     public function stringType($type){
  851.         $string '';
  852.         switch ($type) {
  853.             case LibraryEnum::CONTENT_EMBED:
  854.                 $string 'Embed';
  855.             break;
  856.             case LibraryEnum::CONTENT_FILES:
  857.                 $string 'Files';
  858.             break;
  859.             case LibraryEnum::CONTENT_AUDIO:
  860.                 $string 'Audio';
  861.             break;
  862.             case LibraryEnum::CONTENT_TEXT:
  863.                 $string 'Text';
  864.             break;
  865.             case LibraryEnum::CONTENT_VIDEO:
  866.                 $string 'Video';
  867.             break;
  868.             case LibraryEnum::CONTENT_LIVE:
  869.                 $string 'Live';
  870.             break;
  871.             case LibraryEnum::CONTENT_NEW_LIVE:
  872.                 $string 'Live';
  873.             break;
  874.             case LibraryEnum::CONTENT_CONFERENCE:
  875.                 $string 'Conference';
  876.             break;
  877.             case LibraryEnum::CONTENT_VIDEO_FILE:
  878.                 $string 'Storage';
  879.             break;
  880.         }
  881.         return $string;
  882.     }
  883.     public function toReturn($clean false){
  884.         $data = [
  885.             "id" => $this->id,
  886.             "title" => $this->getTitle(),
  887.             "downloadNumber" => $this->downloadNumber,
  888.             "type" => $this->type,
  889.             "link" => html_entity_decode($this->link),
  890.             "text" => $this->getText(),
  891.             "file" => $this->getFileName(),
  892.             "fileSize" => $this->fileSize,
  893.             "fileExtension" => $this->fileExtension,
  894.             "pagesNumber" => $this->pagesNumber,
  895.             "pdfSvgMode" => $this->pdfSvgMode,
  896.             "record" => $this->record,
  897.             "recordUser" => ($this->recordUser $this->recordUser->getId() : null),
  898.             "recordLibrary" => ($this->recordLibrary $this->recordLibrary->getId() : null),
  899.             "duration" => $this->getDuration(),
  900.             "liveStart" => $this->getLiveStart(),
  901.             "liveStartReal" => $this->getLiveStartReal(),
  902.             "liveEnd" => $this->getLiveEnd(),
  903.             "liveEndUser" => ( $this->liveEndUser $this->liveEndUser->getId() : null ),
  904.             "userDelete" => ( $this->userDelete $this->userDelete->getId() : null ),
  905.             "typeDelete" => $this->typeDelete,
  906.             "dateDelete" => $this->getDateDelete()
  907.         ];
  908.         if(!$clean){
  909.             $data["deleted"] = $this->deleted;
  910.             $data["status"] = $this->status;
  911.             $data["origin"] = $this->origin;
  912.             $data["vimeoId"] = $this->vimeoId;
  913.             $data["vimeoVideoId"] = $this->vimeoVideoId;
  914.             $data["vdocipherVideoId"] = $this->vdocipherVideoId;
  915.             $data["liveCover"] = $this->liveCover;
  916.             $data["liveLinkTransmit"] = $this->liveLinkTransmit;
  917.             $data["liveLink"] = $this->liveLink;
  918.             $data["liveToken"] = $this->liveToken;
  919.             $data["showLiveViewerNumber"] = $this->showLiveViewerNumber;
  920.             $data["liveIdEvent"] = $this->liveIdEvent;
  921.             $data["showTextPdf"] = $this->showTextPdf;
  922.             $data["user"] = ( $this->user $this->user->getId() : null );
  923.         }
  924.         return $data;
  925.     }
  926.     public function toReturnApi(){
  927.         $data = [
  928.             "id" => $this->id,
  929.             "arquivo" => $this->getTitle(),
  930.             "extensao" => $this->fileExtension,
  931.             "tipo_conteudo" => $this->type,
  932.             "url" => $this->link,
  933.             "texto" => $this->text,
  934.             "paginas" => $this->pagesNumber,
  935.             "duracao" => $this->getDuration(),
  936.             "status" => $this->status
  937.         ];
  938.         
  939.         return $data;
  940.     }
  941. }