package com.sundot.airport.system.mapper.portrait;

import com.sundot.airport.system.domain.portrait.RewardPenaltyStats;
import com.sundot.airport.common.enums.portrait.UserType;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 奖励处罚指标数据访问接口
 */
public interface RewardPenaltyIndicatorMapper {
    
    /**
     * 查询个人工作奖励次数
     * @param userId 用户ID
     * @return 个人工作奖励次数
     */
    Integer queryPersonalWorkRewards(@Param("userId") Long userId);
    
    /**
     * 查询组织工作奖励统计
     * @param userIds 用户ID
     * @param userType 用户类型
     * @return 组织工作奖励统计
     */
    RewardPenaltyStats queryOrgWorkRewardsStats(@Param("userIds") List<Long> userIds, @Param("userType") UserType userType);
    
    /**
     * 查询个人工作处罚次数
     * @param userId 用户ID
     * @return 个人工作处罚次数
     */
    Integer queryPersonalWorkPenalties(@Param("userId") Long userId);
    
    /**
     * 查询组织工作处罚统计
     * @param userIds 用户ID
     * @param userType 用户类型
     * @return 组织工作处罚统计
     */
    RewardPenaltyStats queryOrgWorkPenaltiesStats(@Param("userIds") List<Long> userIds, @Param("userType") UserType userType);
}