<commit_before>package com.imcode.imcms.domain.service;

import com.imcode.imcms.domain.dto.MenuDTO;
import com.imcode.imcms.domain.dto.MenuItemDTO;
import com.imcode.imcms.persistence.entity.Menu;
import com.imcode.imcms.persistence.entity.Version;

import java.util.List;

public interface MenuService extends VersionedContentService, DeleterByDocumentId {

    List<MenuItemDTO> getMenuItems(int menuIndex, int docId, String language);

    /**
     * @param disableNested - false/true show nested in menu.
     *                      disableNested (true) - will get all menu items recursive, include children from the menuItem.
     *                      disableNested (false) - will get just menu items.
     */
    List<MenuItemDTO> getVisibleMenuItems(int menuIndex, int docId, String language, boolean disableNested);

    List<MenuItemDTO> getPublicMenuItems(int menuIndex, int docId, String language, boolean disableNested);

    List<Menu> getAll();

    MenuDTO saveFrom(MenuDTO menuDTO);

    void deleteByVersion(Version version);

    enum MenuItemsStatus {
        PUBLIC,
        ALL
    }<commit_msg>Issue IMCMS-468: Menu tags only include the first level in the template - Improve api description stuff;<commit_after>package com.imcode.imcms.domain.service;

import com.imcode.imcms.domain.dto.MenuDTO;
import com.imcode.imcms.domain.dto.MenuItemDTO;
import com.imcode.imcms.persistence.entity.Menu;
import com.imcode.imcms.persistence.entity.Version;

import java.util.List;

public interface MenuService extends VersionedContentService, DeleterByDocumentId {

    List<MenuItemDTO> getMenuItems(int menuIndex, int docId, String language);

    /**
     * @param disableNested - false/true show nested in menu.
     * disableNested (true) - Will return all the items in the menu, no matter what level. All sub levels are empty.
     * ********************************************************************************
     * disableNested (false) - will get just the menu items of the first level. Nested items are in sub levels.
     */
    List<MenuItemDTO> getVisibleMenuItems(int menuIndex, int docId, String language, boolean disableNested);

    List<MenuItemDTO> getPublicMenuItems(int menuIndex, int docId, String language, boolean disableNested);

    List<Menu> getAll();

    MenuDTO saveFrom(MenuDTO menuDTO);

    void deleteByVersion(Version version);

    enum MenuItemsStatus {
        PUBLIC,
        ALL
    }
{'fraction_non_alphanumeric': 0.11324611610793131, 'fraction_numerical': 0.0012264922322158627, 'mean_word_length': 3.8455445544554454, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5147160', 'n_tokens_mistral': 702, 'n_tokens_neox': 683, 'n_words': 196}