package cn.iocoder.yudao.module.asset.convert.contract;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.asset.controller.admin.contract.vo.*;
import cn.iocoder.yudao.module.asset.dal.dataobject.contract.*;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 车辆租赁合同 Convert
 *
 * @author 芋道源码
 */
@Mapper
public interface ContractConvert {

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

    ContractDO convert(ContractSaveReqVO bean);

    ContractRespVO convert(ContractDO bean);

    ContractDetailRespVO convertDetail(ContractDO bean);

    PageResult<ContractRespVO> convertPage(PageResult<ContractDO> page);

    List<ContractVehicleDO> convertVehicleList(List<ContractSaveReqVO.ContractVehicleSaveVO> list);

    ContractVehicleDO convertVehicle(ContractSaveReqVO.ContractVehicleSaveVO bean);

    List<ContractVehicleServiceDO> convertServiceList(List<ContractVehicleServiceVO> list);

    ContractVehicleServiceDO convertService(ContractVehicleServiceVO bean);

    List<ContractAuthorizedDO> convertAuthorizedList(List<ContractAuthorizedVO> list);

    ContractAuthorizedDO convertAuthorized(ContractAuthorizedVO bean);

    List<ContractDetailRespVO.ContractVehicleDetailVO> convertVehicleDetailList(List<ContractVehicleDO> list);

    ContractDetailRespVO.ContractVehicleDetailVO convertVehicleDetail(ContractVehicleDO bean);

    List<ContractVehicleServiceVO> convertServiceVOList(List<ContractVehicleServiceDO> list);

    List<ContractAuthorizedVO> convertAuthorizedVOList(List<ContractAuthorizedDO> list);

    List<ContractAttachmentVO> convertAttachmentVOList(List<ContractAttachmentDO> list);

    ContractAttachmentDO convertAttachment(ContractAttachmentVO bean);

    List<ContractAttachmentDO> convertAttachmentList(List<ContractAttachmentVO> list);

}
