package com.starry.admin.modules.clerk.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.clerk.module.entity.PlayClerkUserReviewInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkUserReviewStateEditVo;

/**
 * 店员资料审核Service接口
 *
 * @author admin
 * @since 2024-05-19
 */
public interface IPlayClerkUserReviewInfoService extends IService<PlayClerkUserReviewInfoEntity> {
    /**
     * 查询店员资料审核
     *
     * @param id
     *            店员资料审核主键
     * @return 店员资料审核
     */
    PlayClerkUserReviewInfoEntity selectPlayClerkUserReviewInfoById(String id);

    /**
     * 根据店员ID，查询未审核的申请
     *
     * @param clerkId
     *            店员ID
     * @param reviewState
     *            审核状态（0：未审核:1：审核通过，2：审核不通过）
     * @return 店员申请审核对象
     */
    PlayClerkUserReviewInfoEntity queryByClerkId(String clerkId, String reviewState);

    /**
     * 分页查询店员申请
     *
     * @param vo
     *            店员申请对象
     * @return 店员申请对象
     */
    IPage<PlayClerkUserReviewReturnVo> selectByPage(PlayClerkUserReviewQueryVo vo);

    /**
     * 查询店员资料审核列表
     *
     * @param playClerkUserReviewInfo
     *            店员资料审核
     * @return 店员资料审核集合
     */
    IPage<PlayClerkUserReviewInfoEntity> selectPlayClerkUserReviewInfoByPage(
            PlayClerkUserReviewInfoEntity playClerkUserReviewInfo);

    /**
     * 新增店员资料审核
     *
     * @param playClerkUserReviewInfo
     *            店员资料审核
     * @return 结果
     */
    boolean create(PlayClerkUserReviewInfoEntity playClerkUserReviewInfo);

    boolean update(PlayClerkUserReviewInfoEntity entity);

    /**
     * 修改店员资料审核
     *
     * @param vo
     *            店员资料审核对象
     */
    void updateDataReviewState(PlayClerkUserReviewStateEditVo vo);

    /**
     * 批量删除店员资料审核
     *
     * @param ids
     *            需要删除的店员资料审核主键集合
     * @return 结果
     */
    int deletePlayClerkUserReviewInfoByIds(String[] ids);

    /**
     * 删除店员资料审核信息
     *
     * @param id
     *            店员资料审核主键
     * @return 结果
     */
    int deletePlayClerkUserReviewInfoById(String id);
}
