package jnpf.cultivate;

import jnpf.base.ActionResult;
import jnpf.cultivate.fallback.FtbCultivateStoreStatisticApiFallback;
import jnpf.model.cultivate.dto.storestatistics.*;
import jnpf.model.cultivate.vo.position.*;
import jnpf.model.thousandsfaces.TodayWorkVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 鉴定api
 */
@FeignClient(name = "jnpf-ftb", fallbackFactory = FtbCultivateStoreStatisticApiFallback.class, path = "/web/store-index-statistics")
public interface FtbCultivateStoreStatisticApi {
    /**
     * 店长页面 培训统计数量
     */
    @PostMapping("/get-cultivate-count")
    ActionResult<FtbCultivateStoreCountVO> getCultivateCount(@RequestBody FtbCultivateStoreStatisticsReq req);

    /**
     * 查询我的考试列表
     *
     * @param req
     * @return
     */
    @PostMapping("/queryMyExamList")
    ActionResult<List<TodayWorkVo>> queryMyExamList(@RequestBody StoreStatisticsMyExamReq req);


    /**
     * 待我批阅(下属的)
     *
     * @param req
     * @return
     */
    @PostMapping("/queryWaitMyReadOver")
    ActionResult<List<TodayWorkVo>> queryWaitMyReadOver(@RequestBody StoreStatisticsWaitMyCheckExamReq req);


    /**
     * 今日工作-待参与及参与中的线下培训<负责人及参与人均属于相关人员>列表
     *
     * @param req
     * @return
     */
    @PostMapping("/queryOfflineTrainList")
    ActionResult<List<TodayWorkVo>> queryOfflineTrainList(@RequestBody StoreOfflineTrainReq req);


    /**
     * 今日工作-我的任务（当日开始的培训任务）列表
     *
     * @param req
     * @return
     */
    @PostMapping("/myTaskList")
    ActionResult<List<TodayWorkVo>> storeMyTaskList(@RequestBody StoreOfflineTrainReq req);

    /**
     * 今日工作-鉴定他人（当日的待鉴定）列表
     *
     * @param req
     * @return
     */
    @PostMapping("/myIdentityList")
    ActionResult<List<TodayWorkVo>> storeMyIdentityList(@RequestBody StoreIdentityReq req);

    /**
     * 员工界面 查询未学习的通用课程数量
     *
     * @param req
     * @return
     */
    @PostMapping("/get-worker-cultivate-count")
    ActionResult<FtbCultivateWorkerCountVO> getWorkerCultivateCount(@RequestBody FtbCultivateStoreStatisticsReq req);


    /**
     * 工作台-员工
     */
    @PostMapping("/person/training-statistics")
    ActionResult<FtbPersonTrainingStatisticsVO> personTrainingStatistics(@RequestBody FtbCultivateStoreStatisticsReq req);


    /**
     * 工作台-店长
     */
    @PostMapping("/store-manager/training-statistics")
    ActionResult<FtbStoreManagerTrainingStatisticsVO> storeManagerTrainingStatistics(@RequestBody FtbCultivateStoreStatisticsReq req);

    /**
     * 工作台-管理层
     */
    @PostMapping("/manager/training-statistics")
    ActionResult<FtbManagerTrainingStatisticsVO> managerTrainingStatistics(@RequestBody FtbCultivateStoreStatisticsReq req);
}
