package com.jwipc.sys.logic;

import com.jwipc.page.PageView;
import com.jwipc.sys.dto.DictDTO;
import com.jwipc.sys.dto.DictEditDTO;
import com.jwipc.sys.dto.DictItemEditDTO;
import com.jwipc.sys.dto.DictItemListDTO;
import com.jwipc.sys.model.query.DictListQuery;
import com.jwipc.sys.model.query.DictTypeQuery;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * <p> </p>
 *
 * @author BOGON
 * @version 1.0
 * @since JDK 1.8
 */
public interface DictLogic {
    List<DictDTO> getDicByType(String type);

    PageView list(DictListQuery query);


    DictEditDTO getForAddOrEdit(Long id);

    void saveOrUpdate(DictEditDTO dictEditDTO);

    PageView itemList(DictTypeQuery typeCode);

    void itemSaveOrUpdate(DictItemEditDTO dictEditDTO);

    DictItemEditDTO getForAddOrEditItem(Long id);

    void itemRemove(Long id);

    void itemImportData(MultipartFile fileId, Long dictTypeId);

    Map<String, List<DictDTO>> getDicByTypes(String types);

    List<DictItemListDTO> listAll(DictTypeQuery dictTypeQuery);
}