<?php

namespace Velis\Test\Dto\Concrete\Dto;

use Velis\Dto\BaseDto;
use Velis\Dto\Utility\Optional;

class SerializationTestDto extends BaseDto
{
    // region Required
    public string $require_string;
    public array $required_array;
    public int $required_int;
    public float $required_float;
    public bool $required_bool;
    // endregion

    // region Nullable
    public ?string $nullable_string;
    public ?array $nullable_array;
    public ?int $nullable_int;
    public ?float $nullable_float;
    public ?bool $nullable_bool;
    // endregion

    // region Optional
    public Optional|string $optional_string;
    public Optional|array $optional_array;
    public Optional|int $optional_int;
    public Optional|float $optional_float;
    public Optional|bool $optional_bool;
    // endregion

    // region Nullable Optional
    public Optional|string|null $nullable_optional_string;
    public Optional|array|null $nullable_optional_array;
    public Optional|int|null $nullable_optional_int;
    public Optional|float|null $nullable_optional_float;
    public Optional|bool|null $nullable_optional_bool;
    // endregion
}
