package com.sundot.airport.item.mapper;

import com.sundot.airport.item.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface HkLargeScreenMapper {

    // ===== 模块一：运行数据 =====

    /** 运行数据汇总（5个大数字卡片） */
    HkScreenOperationSummaryVO getOperationSummary(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** T1旅检过检人数趋势（A区/B区） */
    List<HkScreenT1PassengerTrendVO> getT1PassengerTrend(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** T2旅检过检人数趋势（国内旅检/国际旅检） */
    List<HkScreenT2PassengerTrendVO> getT2PassengerTrend(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 行检过检数趋势（T1行检/T2行检） */
    List<HkScreenLuggageCheckTrendVO> getLuggageCheckTrend(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 货物过检数趋势（国内货站/国际货站） */
    List<HkScreenCargoTrendVO> getCargoTrend(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 车辆过检数趋势（南侧车检/北侧车检） */
    List<HkScreenVehicleCheckTrendVO> getVehicleCheckTrend(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    // ===== 模块二：查获/收缴数据 =====

    /** 查获数据各类别合计（T1+T2，Service 层再转为 name/total 列表） */
    HkScreenSeizureTotalVO getSeizureCategoryTotal(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 各大队查获数对比（按班次+大队分组，用于3个柱状图） */
    List<HkScreenBrigadeSeizureVO> getBrigadeSeizureCompare(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 不合规充电宝功能数据汇总（用于环形图） */
    HkScreenPowerBankSummaryVO getPowerBankSummary(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);

    /** 待检区收缴禁带物品数据汇总（用于环形图） */
    HkScreenPendingConfiscateSummaryVO getPendingConfiscateSummary(
            @Param("startDate") Date startDate,
            @Param("endDate") Date endDate);
}
