package com.sundot.airport.item.service;

import com.sundot.airport.common.statistics.TimeDimensionParams;
import com.sundot.airport.item.domain.dto.ChannelRankingStatsDTO;
import com.sundot.airport.item.domain.dto.ConcealmentPositionStatsDTO;
import com.sundot.airport.item.domain.dto.ItemCategoryStatsDTO;
import com.sundot.airport.item.domain.dto.PostCategoryStatsDTO;
import com.sundot.airport.item.domain.home.SeizureReportDTO;

import java.util.List;


/**
 * 查获物品分类统计服务接口
 */
public interface IItemCategoryStatsService {

    /**
     * 按时间维度获取全站查获物品分类统计数据
     *
     * @param params    时间维度参数
     * @param stationId 站点ID
     * @return 分类统计数据
     */
    ItemCategoryStatsDTO getStationCategoryStats(TimeDimensionParams params, Long stationId);

    /**
     * 按时间维度获取全站隐匿夹带部位分布统计数据
     *
     * @param params    时间维度参数
     * @param stationId 站点ID
     * @return 隐匿夹带部位分布统计数据
     */
    ConcealmentPositionStatsDTO getStationConcealmentPositionStats(TimeDimensionParams params, Long stationId);

    /**
     * 按时间维度获取全站岗位分类统计数据
     *
     * @param params    时间维度参数
     * @param stationId 站点ID
     * @return 岗位分类统计数据
     */
    PostCategoryStatsDTO getStationPostCategoryStats(TimeDimensionParams params, Long stationId);

    /**
     * 按时间维度获取全站通道排名统计数据
     *
     * @param params    时间维度参数
     * @param stationId 站点ID
     * @return 通道排名统计数据
     */
    ChannelRankingStatsDTO getStationChannelRankingStats(TimeDimensionParams params, Long stationId);

    /**
     * 按时间维度获取全站大队排名统计数据
     *
     * @param topSiteId 站点ID
     * @param params    时间维度参数
     * @return 大队排名统计数据
     */
    List<SeizureReportDTO.BrigadeRankingItem> getBrigadeRanking(Long topSiteId, TimeDimensionParams params);
}