package cn.iocoder.yudao.module.pms.convert.iotprojecttasktemplate;

import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttasktemplate.vo.IotProjectTaskTemplateRespVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttasktemplate.IotProjectTaskTemplateDO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

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

@Mapper
public interface IotProjectTaskTemplateConvert {

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

    default List<IotProjectTaskTemplateRespVO> convertList(List<IotProjectTaskTemplateDO> list, Map<Long, DeptDO> deptMap) {
        return CollectionUtils.convertList(list, de -> convert(de, deptMap.get(de.getDeptId())));
    }

    default IotProjectTaskTemplateRespVO convert(IotProjectTaskTemplateDO user, DeptDO dept) {
        IotProjectTaskTemplateRespVO userVO = BeanUtils.toBean(user, IotProjectTaskTemplateRespVO.class);
        if (dept != null) {
            userVO.setDeptName(dept.getName());
        }
        return userVO;
    }

}
