package cn.ey.biz.module.system.convert.codeblock;

import cn.ey.biz.common.pojo.PageResult;
import cn.ey.biz.module.system.api.codeblock.dto.*;
import cn.ey.biz.module.system.controller.admin.codeblock.vo.*;
import cn.ey.biz.module.system.dal.dataobject.codeblock.CodeBlockDO;
import cn.ey.biz.module.system.dal.dataobject.codeblock.CodeBlockLegalEntityDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * codeBlock-编码表 Convert
 */
@Mapper
public interface CodeBlockLegalEntityConvert {

    CodeBlockLegalEntityConvert INSTANCE = Mappers.getMapper(CodeBlockLegalEntityConvert.class);

    PageResult<CodeBlockLegalEntityPageRespVO> convertPage(PageResult<CodeBlockLegalEntityDO> bean);
    
    @Mapping(source = "legalEntityCode", target = "entityCode")
    CodeBlockLegalEntityPageRespVO doToEntityVo(CodeBlockLegalEntityDO entityDO);

    CodeBlockLegalEntityDetailRespVO doToVo(CodeBlockLegalEntityDO entityDO);

    List<CodeBlockLegalEntityDO> paramToDo(List<CodeBlockLegalEntityParamReqVO> codeBlockLegalEntityParamReqVO);

    List<CodeBlockLegalEntityDetailRespDTO> voToDTO(List<CodeBlockDO> list);

    List<CodeBlockUserGpnDTO> convert(List<CodeBlockUserGpnVO> bean);

    List<CodeBlockVO> doConvertVo(List<CodeBlockLegalEntityDO> list);

    CodeBlockInfoRespDTO doConvertDTO(CodeBlockDO codeBlockDO);


    CodeBlockTreeValueDTO treeVoConvertDTO(CodeBlockTreeValueVO codeBlockTreeValueVO);

    List<CodeBlockTreeValueDTO> treeVoConvertDTOList(List<CodeBlockTreeValueVO> codeBlockTreeValueVOS);

    List<CodeBlockGpnRespDTO> convertDTO(List<CodeBlockDO> CodeBlockDOList);

}
