package com.ssj.service.conch.game.service;

import com.ssj.framework.core.util.ResponseEntity;
import com.ssj.service.conch.game.request.*;

/**
 * @author Mount Liu
 * @date 2019/2/20
 */
public interface GameV2Service {

    /**
     * 获取排行榜列表
     *
     * @param req
     */
    ResponseEntity rankingList(RanklistReq req);

    /**
     * 保存结果
     *
     * @param userId
     * @param req
     * @return
     */
    ResponseEntity saveResult(String userId, SaveV2Req req);

    /**
     * 查询首页信息
     *
     * @param userId
     * @return
     */
    ResponseEntity homepageInfo(String userId);

    /**
     * 保存个人基本信息
     *
     * @param userId
     * @param req
     * @return
     */
    ResponseEntity savePersonInfo(String userId, SavePersonInfoReq req);

    /**
     * 查看测试结果
     *
     * @param userId 用户id
     * @param req 入参
     *
     * @return 测试结果
     */
    ResponseEntity findResult(String userId, TestResultReq req);

    /**
     * 清除测试数据，重新开始测试
     * @param userId 用户id
     * @return 重置结果
     */
    ResponseEntity reset(String userId);

    /**
     * 保存测试结果
     * @param userId 用户id
     * @param req 入参
     * @return 保存结果
     */
    ResponseEntity saveResultV2(String userId, SaveV2Req req);

    /**
     * 保存每道题的答题结果
     * @param userId 用户id
     * @param req 入参
     */
    ResponseEntity answerInfoSave(String userId, AnswerInfoSaveReq req);

    /**
     * 保存答题人信息
     *
     * @param userId 用户id
     * @param req 答题人信息
     */
    ResponseEntity saveRespondentInfo(String userId, SaveRespondentInfoReq req);

    /**
     * 查询答题历史记录
     *
     * @param userId 用户id
     * @param req 入参
     *
     * @return 历史记录list
     */
    ResponseEntity findHistory(String userId, RanklistReq req);
}
