<?php

declare(strict_types=1);

namespace App\Dtos;

use App\Models\Informacia\Enums\StavInformacieEnum;
use Spatie\LaravelData\Data;

/**
 * Class InformaciaDto
 *
 * DTO trieda sluziaca na prenos dat informacii v systeme
 *
 * @author  Radoslav Lukac <dev@seka.sk>
 */
final class InformaciaDto extends Data
{
    /**
     * Jedinecny identifikator informacie
     */
    public ?int $id;

    /**
     * Nadpis informacie
     */
    public ?string $titulok;

    public ?string $uvod;

    /**
     * Textovy obsah informacie
     */
    public ?string $obsah;

    /**
     * Datum a cas planovaneho zverejnenia
     */
    public ?string $planovany_cas_zverejnenia;

    /**
     * Aktualny stav informacie
     */
    public ?StavInformacieEnum $stav;

    /**
     * Indikator odoslania emailu na PEK
     */
    public bool $odoslat_email_na_pek = false;

    /**
     * Datum a cas skutocneho zverejnenia
     */
    public ?string $cas_zverejnenia;

    /**
     * ID autora informacie
     */
    public ?int $vytvoril_id;

    /**
     * Autor informacie
     */
    public PouzivatelDto $vytvoril;

    /**
     * Pouzivatelske role pre zverejnenie
     *
     * @var array<\App\Enums\RolaPouzivatelaEnum>
     */
    public ?array $zverejnit_pre_pouzivatelov_podla_role;

    /**
     * Indikator odoslania emailu pouzivatelom
     */
    public bool $odoslat_email_pouzivatelom = false;

    /**
     * Indikator odoslania push notifikacii
     */
    public bool $odoslat_push_notifikacie_pouzivatelom = false;

    /**
     * Indikator odporucaneho obsahu
     */
    public bool $odporucane = false;

    public ?string $created_at;

    public ?string $updated_at;

    public ?string $deleted_at;

    public ?string $hash_id;

    public ?int $pocet_vsetkych_hodnoteni;

    public ?int $pocet_kladnych_hodnoteni;

    public ?int $pocet_zapornych_hodnoteni;
}
