<?php

declare(strict_types=1);

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

use DateTime;
use Seka\Portal\Modul\Terminy\Entities\Udalost\DruhUdalosti;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavRegistracie;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavUdalosti;
use Seka\Portal\Modul\Terminy\Entities\Udalost\StavUpozornenia;
use Spatie\LaravelData\Attributes\WithCast;
use Spatie\LaravelData\Casts\EnumCast;
use Spatie\LaravelData\Data;

/**
 * Class UdalostDTO
 *
 * @package Seka\Portal\Modul\Terminy\Entities\Dtos
 */
final class UdalostDTO extends Data
{
    public ?int $id;

    public string $nazov;

    public ?string $popis;

    public DateTime $datum_od;

    public DateTime $datum_do;

    #[WithCast(EnumCast::class)]
    public DruhUdalosti $druh;

    #[WithCast(EnumCast::class)]
    public StavUdalosti $stav;

    #[WithCast(EnumCast::class)]
    public StavUpozornenia $upozornenie;

    public int $kapacita;

    #[WithCast(EnumCast::class)]
    public StavRegistracie $registracia;

    public MiestoKonaniaDTO $miesto_konania;
}
