package cn.iocoder.mall.systemservice.convert.errorcode;

import cn.iocoder.common.framework.vo.PageResult;
import cn.iocoder.mall.systemservice.dal.mysql.dataobject.errorcode.ErrorCodeDO;
import cn.iocoder.mall.systemservice.rpc.errorcode.dto.ErrorCodeAutoGenerateDTO;
import cn.iocoder.mall.systemservice.rpc.errorcode.dto.ErrorCodeCreateDTO;
import cn.iocoder.mall.systemservice.rpc.errorcode.dto.ErrorCodePageDTO;
import cn.iocoder.mall.systemservice.rpc.errorcode.dto.ErrorCodeUpdateDTO;
import cn.iocoder.mall.systemservice.rpc.errorcode.vo.ErrorCodeVO;
import cn.iocoder.mall.systemservice.service.errorcode.bo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface ErrorCodeConvert {

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

    ErrorCodeDO convert(ErrorCodeCreateBO bean);

    ErrorCodeBO convert(ErrorCodeDO bean);

    List<ErrorCodeBO> convertList(List<ErrorCodeDO> list);

    @Mapping(source = "records", target = "list")
    PageResult<ErrorCodeBO> convertPage(IPage<ErrorCodeDO> page);

    ErrorCodeDO convert(ErrorCodeUpdateBO bean);

    ErrorCodeCreateBO convert(ErrorCodeCreateDTO bean);

    ErrorCodeUpdateBO convert(ErrorCodeUpdateDTO bean);

    ErrorCodeVO convert(ErrorCodeBO bean);

    List<ErrorCodeVO> convertList02(List<ErrorCodeBO> list);

    PageResult<ErrorCodeVO> convertPage(PageResult<ErrorCodeBO> page);

    ErrorCodePageBO convert(ErrorCodePageDTO bean);

    ErrorCodeDO convert(ErrorCodeAutoGenerateBO bean);

    List<ErrorCodeAutoGenerateBO> convertList03(List<ErrorCodeAutoGenerateDTO> list);

}
