<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Terminy\Entities\Dtos;

use Carbon\Carbon;
use Seka\Portal\Modul\Terminy\Entities\Udalost\DruhUdalosti;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavUdalosti;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavRegistracie;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavUpozornenia;
use Spatie\DataTransferObject\FlexibleDataTransferObject;

/**
 * Class UdalostDTO
 *
 * @package Seka\Portal\Modul\Terminy\Entities\Dtos
 */
final class UdalostDTO extends FlexibleDataTransferObject
{
    use ModelToDTOTrait;

    /**
     * @var int|null
     */
    public ?int $id;

    /**
     * @var string
     */
    public string $nazov;

    /**
     * @var string|null
     */
    public ?string $popis;

    /**
     * @var \Carbon\Carbon
     */
    public Carbon $datum_od;

    /**
     * @var \Carbon\Carbon
     */
    public Carbon $datum_do;

    /**
     * @var \Seka\Portal\Modul\Terminy\Entities\Udalost\DruhUdalosti
     */
    public DruhUdalosti $druh;

    /**
     * @var \Seka\Portal\Modul\Terminy\Entities\Udalost\StavUdalosti
     */
    public StavUdalosti $stav;

    /**
     * @var \Seka\Portal\Modul\Terminy\Entities\Udalost\StavUpozornenia
     */
    public StavUpozornenia $upozornenie;

    /**
     * @var int
     */
    public int $kapacita;

    /**
     * @var \Seka\Portal\Modul\Terminy\Entities\Udalost\StavRegistracie
     */
    public StavRegistracie $registracia;

    /**
     * @var \Seka\Portal\Modul\Terminy\Entities\Dtos\MiestoKonaniaDTO
     */
    public MiestoKonaniaDTO $miesto_konania;
}
