package jnpf.cultivate.service;

import jnpf.base.vo.PageListVO;
import jnpf.model.cultivate.dto.position.FtbCultivatePersonStatisticesDTO;
import jnpf.model.cultivate.dto.position.FtbCultivatePositionOrgStatisticesDTO;
import jnpf.model.cultivate.dto.position.FtbCultivatePositionPersonStatisticesDTO;
import jnpf.model.cultivate.vo.position.*;

import java.math.BigDecimal;
import java.util.List;

public interface FtbCultivatePositionStatisticesService {
    /**
     * 组织维度统计
     */
    PageListVO<FtbCultivatePositionOrgStatisticesVO> organizationListStatistics(FtbCultivatePositionOrgStatisticesDTO statisticDTO);

    /**
     * 个人维度统计
     */
    PageListVO<FtbCultivatePositionPersonStatisticesVO> personListStatistics(FtbCultivatePositionPersonStatisticesDTO ftbCultivatePositionPersonStatisticesDTO);

    /**
     * 岗位维度统计
     */
    PageListVO<FtbCultivatePersonStatisticesVO> positionListStatistics(FtbCultivatePersonStatisticesDTO ftbCultivatePositionPersonStatisticesDTO);

    /**
     * 组织维度-课程详情
     */
    List<OrganizeCourseDetails> organizeCourseDetails(String startDate, String endDate, String orgId);

    /**
     * 个人维度-课程详情
     */
    List<PersonalDimensionCourseDetails> personalDimensionCourseDetails(String startDate, String endDate, String userId);

    /**
     * 岗位学习进度
     *
     * @param postId 岗位Id
     * @param userId 用户ID
     * @return {@link BigDecimal}
     */
    BigDecimal jobLearningProgress(String postId, String userId);

    /**
     * 岗位维度-点击岗位名称数据统计
     */
    JobTitleStatistics jobTitleStatistics(String postId);

}
