<?php
namespace App\Entity\ChannelUserData\AdminChannelUserData;
use App\Entity\ChannelUserData\AdminChannelUserData;
use App\Entity\Common\File;
use App\Repository\ChannelUserData\AdminChannelUserData\AdminDriveFileRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Serializer\Annotation as Serial;
#[
ORM\Entity(repositoryClass: AdminDriveFileRepository::class),
ORM\Table('file_admin_channel_user_data_drive')
]
class AdminDriveFile extends File
{
#[ORM\ManyToOne(targetEntity: AdminChannelUserData::class)]
#[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
private ?AdminChannelUserData $channelUserData = null;
#[ORM\Column(type: 'date', nullable: true)]
#[
NotBlank(groups: ['ToRemoveAt']),
]
#[Serial\Groups(['ToRemoveAt', 'Manager'])]
private ?\DateTime $toRemoveAt = null;
#[ORM\Column(type: 'boolean', nullable: false)]
#[Serial\Groups(['PostFile', 'PutFile', 'Manager'])]
private bool $share = true;
public static function getFileSystemAlias(): string
{
return 'admin_channel_user_data_drive_filesystem';
}
public static function getUploaderAlias(): ?string
{
return 'admin_channel_user_data_drive_upload';
}
public function getChannelUserData(): ?AdminChannelUserData
{
return $this->channelUserData;
}
public function setChannelUserData(?AdminChannelUserData $channelUserData): static
{
$this->channelUserData = $channelUserData;
return $this;
}
public function getToRemoveAt(): ?\DateTime
{
return $this->toRemoveAt;
}
public function setToRemoveAt(?\DateTime $toRemoveAt): static
{
$this->toRemoveAt = $toRemoveAt;
return $this;
}
public function isShare(): bool
{
return $this->share;
}
public function setShare(bool $share): AdminDriveFile
{
$this->share = $share;
return $this;
}
}