Files
LaLiga-BackEnd/src/Dto/NotificationDto.php
T
2024-05-18 02:28:01 +02:00

137 lines
4.1 KiB
PHP

<?php
namespace DMD\LaLigaApi\Dto;
use DMD\LaLigaApi\Entity\Notification;
class NotificationDto
{
public static string $TYPE_JOIN_LEAGUE = 'joinLeague';
public static string $TYPE_JOIN_TEAM = 'joinTeam';
public static string $TYPE_CAPTAIN_REQUEST = 'captainRequest';
public int $id;
public string $type;
public string $message;
public int $teamId;
public int $leagueId;
public int $userWhoFiredEventId;
public int $userToNotifyId;
public bool $isRead;
public \DateTimeImmutable $readAt;
public \DateTimeImmutable $createdAt;
public function toArray(): array
{
return [
'id' => $this->id ?? '',
'type' => $this->type ?? '',
'message' => $this->message ?? '',
'teamId' => $this->teamId ?? '',
'leagueId' => $this->leagueId ?? '',
'isRead' => $this->isRead ?? false,
'readAt' => !empty($this->readAt) ? $this->readAt->format('Y-m-d H:i:s') : '',
'createdAt' => !empty($this->createdAt) ? $this->createdAt->format('Y-m-d H:i:s') : ''
];
}
public function fillFromArray(array $dataList): void
{
if (isset($dataList['id']))
{
$this->id = $dataList['id'];
}
if (!empty($dataList['type']))
{
$this->type = match($dataList['type']) {
self::$TYPE_JOIN_LEAGUE => 'JOIN_LEAGUE',
self::$TYPE_JOIN_TEAM => 'JOIN_TEAM',
self::$TYPE_CAPTAIN_REQUEST => 'CAPTAIN_REQUEST',
default => null
};
}
if (!empty($dataList['message']))
{
$this->message = $dataList['message'];
}
if (!empty($dataList['isRead']))
{
$this->isRead = $dataList['isRead'];
}
if (!empty($dataList['readAt']))
{
$this->readAt = \DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $dataList['readAt']);
}
if (!empty($dataList['createdAt']))
{
$this->createdAt = \DateTimeImmutable::createFromFormat('Y-m-d H:i:s', $dataList['createdAt']);
}
if (isset($dataList['teamId']))
{
$this->teamId = (int) $dataList['teamId'];
}
if (isset($dataList['userWhoFiredEventId']))
{
$this->userWhoFiredEventId = $dataList['userWhoFiredEventId'];
}
if (isset($dataList['userToNotifyId']))
{
$this->userToNotifyId = $dataList['userToNotifyId'];
}
if (isset($dataList['leagueId']))
{
$this->leagueId = $dataList['leagueId'];
}
}
public function fillFromObj(Notification $notificationObj): self
{
if ($notificationObj->getId() !== null)
{
$this->id = $notificationObj->getId();
}
if ($notificationObj->getType() !== null)
{
$this->type = $notificationObj->getType();
}
if ($notificationObj->getMessage() !== null)
{
$this->message = $notificationObj->getMessage();
}
if ($notificationObj->getUserWhoFiredEvent() !== null)
{
$this->userWhoFiredEventId = ($notificationObj->getUserWhoFiredEvent())->getId();
}
if ($notificationObj->getUserToNotify() !== null)
{
$this->userToNotifyId = ($notificationObj->getUserToNotify())->getId();
}
if ($notificationObj->getLeague() !== null)
{
$this->leagueId = ($notificationObj->getLeague())->getId();
}
if ($notificationObj->getTeamId() !== null)
{
$this->teamId = $notificationObj->getTeamId();
}
if ($notificationObj->isIsRead() !== null)
{
$this->isRead = $notificationObj->isIsRead();
}
if ($notificationObj->getReadAt() !== null)
{
$this->readAt = $notificationObj->getReadAt();
}
if ($notificationObj->getCreatedAt() !== null)
{
$this->createdAt = $notificationObj->getCreatedAt();
}
return $this;
}
public function validate(): void
{
}
}