package com.erp.inventory.repository;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.erp.inventory.entity.StockWarningRule;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 库存预警规则Repository
 */
@Mapper
public interface StockWarningRuleRepository extends BaseMapper<StockWarningRule> {

    /**
     * 根据规则类型查询启用的规则
     */
    List<StockWarningRule> findByRuleTypeAndEnabled(@Param("ruleType") String ruleType, @Param("enabled") Integer enabled);

    /**
     * 根据SKU编码和仓库ID查询启用的规则
     */
    List<StockWarningRule> findBySkuCodeAndWarehouseIdAndEnabled(
            @Param("skuCode") String skuCode, 
            @Param("warehouseId") Long warehouseId, 
            @Param("enabled") Integer enabled);

    /**
     * 查询所有启用的规则
     */
    List<StockWarningRule> findAllEnabled();

    /**
     * 分页查询规则列表
     */
    IPage<StockWarningRule> findByConditions(
            Page<StockWarningRule> page,
            @Param("ruleType") String ruleType,
            @Param("ruleName") String ruleName,
            @Param("enabled") Integer enabled,
            @Param("warehouseId") Long warehouseId);
}
