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.PlayClerkDataReviewInfoEntity;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewQueryVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewReturnVo;
import com.starry.admin.modules.clerk.module.vo.PlayClerkDataReviewStateEditVo;
import java.util.List;

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

    /**
     * 查询店员资料申请
     *
     * @param clerkId
     *            店员ID
     * @param reviewState
     *            审核状态（0：未审核:1：审核通过，2：审核不通过）
     * @return PlayClerkDataReviewInfoEntity
     */
    List<PlayClerkDataReviewInfoEntity> queryByClerkId(String clerkId, String reviewState);

    /**
     * 查询店员资料申请
     *
     * @param clerkId
     *            店员ID
     * @param dataType
     *            资料类型[0:昵称;1:头像;2:相册;3:录音]
     * @param reviewState
     *            审核状态（0：未审核:1：审核通过，2：审核不通过）
     * @return PlayClerkDataReviewInfoEntity
     */
    PlayClerkDataReviewInfoEntity queryByClerkId(String clerkId, String dataType, String reviewState);

    /**
     * 查询店员资料审核列表
     *
     * @param vo
     *            店员资料审核
     * @return 店员资料审核集合
     */
    IPage<PlayClerkDataReviewReturnVo> selectByPage(PlayClerkDataReviewQueryVo vo);

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

    /**
     * 修改店员资料审核状态
     *
     * @param vo
     *            PlayClerkDataReviewStateEditVo
     */
    void updateDataReviewState(PlayClerkDataReviewStateEditVo vo);
    /**
     * 修改店员资料审核
     *
     * @param playClerkDataReviewInfo
     *            店员资料审核
     * @return 结果
     */
    boolean update(PlayClerkDataReviewInfoEntity playClerkDataReviewInfo);

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

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