package cn.iocoder.byzs.module.system.dal.mysql.invitecode;

import cn.iocoder.byzs.framework.common.pojo.PageResult;
import cn.iocoder.byzs.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.byzs.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.byzs.module.system.controller.admin.invitecode.vo.InviteCodePageReqVO;
import cn.iocoder.byzs.module.system.dal.dataobject.invitecode.InviteCodeDO;
import org.apache.ibatis.annotations.Mapper;

/**
 * 邀请码 Mapper
 *
 * @author lyb
 */
@Mapper
public interface InviteCodeMapper extends BaseMapperX<InviteCodeDO> {

    default PageResult<InviteCodeDO> selectPage(InviteCodePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<InviteCodeDO>()
                .eqIfPresent(InviteCodeDO::getCode, reqVO.getCode())
//                .eqIfPresent(InviteCodeDO::getRoleIds, reqVO.getRoleName())
                .eqIfPresent(InviteCodeDO::getValidTime, reqVO.getValidTime())
                .betweenIfPresent(InviteCodeDO::getExpireTime, reqVO.getExpireTime())
//                .eqIfPresent(InviteCodeDO::getUseUserId, reqVO.getUseUserName())
//                .eqIfPresent(InviteCodeDO::getUseUserTenantId, reqVO.getUseUserTenantName())
                .eqIfPresent(InviteCodeDO::getStatus, reqVO.getStatus())
                .betweenIfPresent(InviteCodeDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(InviteCodeDO::getTenantId, reqVO.getTenantId())
                .orderByDesc(InviteCodeDO::getId));
    }

}