<?php

namespace App\Dtos\Factory;

use App\Dtos\InformaciaDto;
use App\Dtos\PouzivatelDto;
use App\Models\Informacia\Informacia;

/**
 * Trieda InformaciaDtoFactory
 *
 * Sluzi na vytvorenie DTO objektu z modelu Informacia
 *
 * @package App\Dtos\Factory
 * @author  Radoslav Lukac <dev@seka.sk>
 */
final class InformaciaDtoFactory
{
    /**
     * Vytvori novy InformaciaDto objekt z modelu Informacia
     *
     * @param Informacia $informacia Model informacie
     *
     * @return InformaciaDto Vytvoreny DTO objekt
     */
    public static function make(Informacia $informacia): InformaciaDto
    {
        $model = $informacia->withoutRelations()->toArray();

        if ($informacia->vytvoril) {
            $model['vytvoril'] = PouzivatelDto::fromModel($informacia->vytvoril);
        }

        return new InformaciaDto($model);
    }
}
