package jnpf.attendance.service;

import jnpf.base.service.SuperService;
import jnpf.entity.attendance.AttendanceRuleScope;
import jnpf.enums.attendance.ScopeBizType;
import jnpf.model.attendance.dto.UserOrgDto;

import java.util.List;

/**
 * 适配范围服务
 *
 * @author yanwenfu
 * @create 2025-09-18
 */
public interface RuleScopeService extends SuperService<AttendanceRuleScope> {

    /**
     * 查询用户生效中的规则
     * @param userId 用户id
     * @param organizeId 组织id
     * @param bizType 业务类型
     * @return java.util.List<jnpf.entity.attendance.AttendanceRuleScope>
     */
    List<AttendanceRuleScope> selectUserEffectList(String userId, String organizeId, ScopeBizType bizType);

    /**
     * 查询用户生效中的规则[批量]
     * @param userOrgList 用户组织列表
     * @param bizType 业务类型
     * @param priority 使用优先级(1: 是, 0: 否)
     * @return java.util.List<jnpf.entity.attendance.AttendanceRuleScope>
     */
    List<AttendanceRuleScope> selectUserEffectListBatch(List<UserOrgDto> userOrgList, ScopeBizType bizType, Integer priority,List<String> leaveTypeIds);

    /**
     * 查询组织生效中的假期规则[批量]
     * @param oldOrganizeId 组织id
     * @return java.util.List<jnpf.entity.attendance.AttendanceRuleScope>
     */
    List<AttendanceRuleScope> selectOrgEffectListBatch(String oldOrganizeId);
}
