package jnpf.cultivate.service;

import com.github.pagehelper.PageInfo;
import jnpf.base.vo.PageListVO;
import jnpf.model.cultivate.CultivatePage;
import jnpf.model.cultivate.resp.AppExamListVo;
import jnpf.model.cultivate.vo.identify.UserIdentifyPageVo;
import jnpf.model.cultivate.vo.position.FtbCultivateCourseListVO;
import jnpf.model.cultivate.vo.position.FtbCultivatePositionUserInfoVo;
import jnpf.permission.dto.v2.user.QueryPageUserDTO;

/**
 * @Title:FtbCultivatePositionMemberService
 * @Author:peng.hao
 * @create: 2023/12/2819:23
 */
public interface FtbCultivatePositionMemberService {
    /**
     * 根据关键词和分页信息查询用户列表
     *
     * @param dto
     * @return 返回包含用户信息的分页列表
     */
    PageListVO<FtbCultivatePositionUserInfoVo> listUser(QueryPageUserDTO dto);

    /**
     * 根据用户ID和分页信息查询课程列表
     *
     * @param userId 用户ID，用于识别特定用户
     * @param page 分页信息，包含页码和每页数量等
     * @return 返回包含课程信息的分页列表
     */
    PageListVO<FtbCultivateCourseListVO> listCourse(String userId, CultivatePage page);

    /**
     * 根据用户ID和分页信息查询考试列表
     *
     * @param userId 用户ID，用于识别特定用户
     * @param page 分页信息，包含页码和每页数量等
     * @return 返回包含考试信息的分页列表
     */
    PageInfo<AppExamListVo> listExam(String userId, CultivatePage page);

    /**
     * 根据用户ID和分页信息查询认证列表
     *
     * @param userId 用户ID，用于识别特定用户
     * @param page 分页信息，包含页码和每页数量等
     * @return 返回包含认证信息的分页列表
     */
    PageListVO<UserIdentifyPageVo> listIdentify(String userId, CultivatePage page);
}
