<?php

namespace KupShop\GraphQLBundle\ApiAdmin\Types\Catalog\Section\Input;

use KupShop\GraphQLBundle\ApiAdmin\Annotation\Module;
use KupShop\GraphQLBundle\ApiAdmin\Types\SeoInput;
use KupShop\GraphQLBundle\ApiShared\Types\Enums\SectionBehaviourEnum;
use KupShop\GraphQLBundle\ApiShared\Types\Enums\SectionVisibilityEnum;
use TheCodingMachine\GraphQLite\Annotations\Field;
use TheCodingMachine\GraphQLite\Annotations\Input;

#[Input(description: 'Vytvoření/úprava sekce', update: true)]
class SectionInput
{
    #[Field(description: 'ID. Vyplňuje se pouze v případě aktualizace, pokud chceme založit nový produkt, tak ID nevyplňujeme.')]
    public ?int $id;

    #[Field(description: 'Název. Povinný pokud vytváříme nový produkt.')]
    public ?string $name;

    #[Field(description: 'Krátký název.')]
    public ?string $nameShort;

    #[Field(description: 'Anotace.')]
    #[Module(\Modules::PRODUCTS_SECTIONS, \Modules::SUB_ANNOTATION)]
    public ?string $annotation;

    #[Field(description: 'ID nadřazené sekce.')]
    public ?int $parentId;

    #[Field(description: 'Viditelnost.')]
    public ?SectionVisibilityEnum $visibility;

    #[Field(description: 'Zobrazovat produkty z podsekcí.')]
    public ?SectionBehaviourEnum $behaviour;

    #[Field(description: 'Zobrazovat ve vyhledávání.')]
    public ?bool $showInSearch;

    #[Field(description: 'SEO.')]
    public ?SeoInput $seo;

    #[Field(description: 'URL sekce.')]
    public ?string $url;

    #[Field(description: 'URL pro přesměrování.')]
    public ?string $redirectUrl;
}
