package cn.iocoder.yudao.module.system.dal.mysql.rental;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.rental.vo.itemsrecord.RentalItemsCountReqVO;
import cn.iocoder.yudao.module.system.controller.admin.rental.vo.itemsrecord.RentalItemsRecordPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.rental.RentalItemsRecordDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

@Mapper
public interface RentalItemsRecordMapper extends BaseMapperX<RentalItemsRecordDO> {

     default PageResult<RentalItemsRecordDO> selectPage(RentalItemsRecordPageReqVO reqVO) {

         return selectPage(reqVO, new LambdaQueryWrapperX<RentalItemsRecordDO>()
                 .eqIfPresent(RentalItemsRecordDO::getOrderNo, reqVO.getOrderNo())
                 .eqIfPresent(RentalItemsRecordDO::getRentalItemsType, reqVO.getRentalItemsType())
                 .eqIfPresent(RentalItemsRecordDO::getType, reqVO.getType())
                 .betweenIfPresent(RentalItemsRecordDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(RentalItemsRecordDO::getCreateTime));
     }

    List<RentalItemsCountReqVO> selectRentalItemsCount(@Param("orderNo") String orderNo,
                                                       @Param("isUpdate") Boolean isUpdate);
}
