Skip to content
Snippets Groups Projects
NewsDetailElementDtoFactory.php 784 B
Newer Older
<?php

namespace App\News\DtoFactory;

use App\News\Dto\NewsDetailElementDto;
use App\Shared\DtoFactory\FileDtoFactory;
use App\Shared\Entity\News;

class NewsDetailElementDtoFactory
{
    public function __construct(
        private readonly FileDtoFactory $fileFactory

    public function create(News $news): NewsDetailElementDto
    {
        return new NewsDetailElementDto(
            id: $news->getId(),
            name: $news->getName(),
            description: $news->getPreviewText(),
            createAt: $news->getCreatedAt()?->format('d.m.Y'),
            text: $news->getDetailText(),
            image: $news->getPreviewImage() !== null
                ? $this->fileFactory->create($news->getPreviewImage())
                : null,
        );
    }
}