package top.imwork.window.silos.convert.upms;

import org.springframework.util.ObjectUtils;
import top.imwork.window.silos.entity.upms.Region;
import top.imwork.window.silos.pojo.upms.bo.RegionBO;
import top.imwork.window.silos.pojo.upms.bo.RegionResultBO;
import top.imwork.window.silos.pojo.upms.dto.RegionListDTO;
import top.imwork.window.silos.pojo.upms.po.RegionListParamVO;
import top.imwork.window.silos.pojo.upms.po.RegionParamVO;
import top.imwork.window.silos.pojo.upms.vo.RegionResultVO;
import top.imwork.window.silos.pojo.upms.vo.RegionVO;
import top.imwork.window.silos.pojo.upms.dto.RegionDTO;

import java.util.ArrayList;
import java.util.List;

/**
 * 地理信息
 * 实体转换
 *
 * @author jiangxiaowei
 * email: e-jiangxiaowei@outlook.com
 * date: 2025-12-11 13:37:18
 */
public class RegionConvert {
    private RegionConvert() {}

    public static Region regionDtoToDo(RegionDTO regionDTO) {
        if (regionDTO == null) {
            return new Region();
        }
        Region region = new Region();
        return region;
    }

    public static RegionBO regionDoToBo(Region region) {
       if (region == null) {
           return new RegionBO();
       }
       RegionBO regionBO = new RegionBO();
       return regionBO;
    }

    public static RegionDTO regionParamVoToDto(RegionParamVO regionParamVO) {
        if (regionParamVO == null) {
            return new RegionDTO();
        }
        RegionDTO regionDTO = new RegionDTO();
        return regionDTO;
    }

    public static List<RegionBO> regionListToRegionBOList(List<Region> records) {
         if (ObjectUtils.isEmpty(records)) {
             return new ArrayList<>();
         }
         List<RegionBO> regionBOList = new ArrayList<>();
         for (Region region : records) {
             regionBOList.add(regionDoToBo(region));
         }
         return regionBOList;
    }

    public static RegionVO regionBoToVo(RegionBO regionBO) {
         if (regionBO == null) {
         return new RegionVO();
         }
         RegionVO regionVO = new RegionVO();
         return regionVO;
    }

    public static RegionListDTO regionListParamVoToDTO(RegionListParamVO regionListParamVO) {
        if (regionListParamVO == null) {
            return new RegionListDTO();
        }
        RegionListDTO regionListDTO = new RegionListDTO();
        regionListDTO.setRegionName(regionListParamVO.getRegionName());
        regionListDTO.setPageNo(regionListParamVO.getPageNo());
        regionListDTO.setPageRows(regionListParamVO.getPageRows());
        regionListDTO.setDelFlag(regionListParamVO.getDelFlag());
        regionListDTO.setCreator(regionListParamVO.getCreator());
        regionListDTO.setCreateBeginTime(regionListParamVO.getCreateBeginTime());
        regionListDTO.setCreateEndTime(regionListParamVO.getCreateEndTime());
        regionListDTO.setModifier(regionListParamVO.getModifier());
        regionListDTO.setUpdateBeginTime(regionListParamVO.getUpdateBeginTime());
        regionListDTO.setUpdateEndTime(regionListParamVO.getUpdateEndTime());
        regionListDTO.setRemark(regionListParamVO.getRemark());
        return regionListDTO;
    }
        
    public static RegionListParamVO regionListParamDtoToVo(RegionListDTO regionListDTO) {
        if (regionListDTO == null) {
            return new RegionListParamVO();
        }
        RegionListParamVO regionListParamVO = new RegionListParamVO();
        regionListParamVO.setRegionName(regionListDTO.getRegionName());
        regionListParamVO.setPageNo(regionListDTO.getPageNo());
        regionListParamVO.setPageRows(regionListDTO.getPageRows());
        regionListParamVO.setDelFlag(regionListDTO.getDelFlag());
        regionListParamVO.setCreator(regionListDTO.getCreator());
        regionListParamVO.setCreateBeginTime(regionListDTO.getCreateBeginTime());
        regionListParamVO.setCreateEndTime(regionListDTO.getCreateEndTime());
        regionListParamVO.setModifier(regionListDTO.getModifier());
        regionListParamVO.setUpdateBeginTime(regionListDTO.getUpdateBeginTime());
        regionListParamVO.setUpdateEndTime(regionListDTO.getUpdateEndTime());
        regionListParamVO.setRemark(regionListDTO.getRemark());
        return regionListParamVO;
    }

    private static List<RegionVO> regionBoListToRegionVoList(List<RegionBO> dataList) {
        if (ObjectUtils.isEmpty(dataList)) {
            return new ArrayList<>();
        }
        List<RegionVO> regionVOList = new ArrayList<>();
        for (RegionBO regionBO : dataList) {
             regionVOList.add(regionBoToVo(regionBO));
        }
        return regionVOList;
    }

    public static RegionResultVO regionResultBoToVo(RegionResultBO regionResultBO) {
        if (regionResultBO == null) {
            return new RegionResultVO();
        }
        RegionResultVO regionResultVO = new RegionResultVO();
        regionResultVO.setPageNo(regionResultBO.getPageNo());
        regionResultVO.setPageRows(regionResultBO.getPageRows());
        regionResultVO.setPageCount(regionResultBO.getPageCount());
        regionResultVO.setTotalRows(regionResultBO.getTotalRows());
        regionResultVO.setDataList(regionBoListToRegionVoList(regionResultBO.getDataList()));
        regionResultVO.setParams(regionListParamDtoToVo(regionResultBO.getParams()));
        return regionResultVO;
    }
}