<?php
namespace JanusHercules\ScamCountermeasures\Domain\Entity;
use App\Utility\DateTimeUtility;
use DateTime;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Exception;
#[ORM\Entity]
#[ORM\Table(name: 'archived_users')]
class ArchivedUser
{
/**
* @throws Exception
*/
public function __construct(string $formerUserId, ?string $userData = null)
{
$this->formerUserId = $formerUserId;
$this->userData = $userData;
$this->createdAt = DateTimeUtility::createDateTimeUtc();
}
#[ORM\Id]
#[ORM\Column(
type : Types::GUID,
unique: true
)]
private string $formerUserId;
public function getFormerUserId(): string
{
return $this->formerUserId;
}
public function setFormerUserId(string $formerUserId): void
{
$this->formerUserId = $formerUserId;
}
#[ORM\Column(
type : Types::TEXT,
length : 32768,
nullable: false
)]
private ?string $userData;
public function getUserData(): ?string
{
return $this->userData;
}
public function setUserData(?string $userData): void
{
$this->userData = empty($userData)
? null
: mb_substr($userData, 0, 32768);
}
#[ORM\Column(
type : Types::DATETIME_MUTABLE,
nullable: false
)]
private DateTime $createdAt;
public function getCreatedAt(): DateTime
{
return $this->createdAt;
}
public function setCreatedAt(DateTime $createdAt): void
{
$this->createdAt = $createdAt;
}
}