package com.erp.warehouse.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.erp.warehouse.dto.StockAlertDTO.*;
import com.erp.warehouse.entity.StockAlertConfig;
import com.erp.warehouse.entity.StockAlertNotification;

/**
 * 库存预警服务接口
 */
public interface StockAlertService {

    // ==================== 预警列表 ====================

    /**
     * 获取预警列表（分页）
     */
    IPage<AlertItem> listAlerts(Long tenantId, Long warehouseId, String keyword, String alertLevel, int page, int limit);

    /**
     * 获取预警摘要
     */
    AlertSummary getSummary(Long tenantId);

    /**
     * 手动触发预警检查并发送通知
     */
    AlertTriggerResult triggerAlerts(Long tenantId);

    // ==================== 预警设置 ====================

    /**
     * 获取预警设置
     */
    AlertSettings getSettings(Long tenantId);

    /**
     * 更新预警设置
     */
    StockAlertConfig updateSettings(Long tenantId, AlertSettings settings);

    // ==================== 通知配置 ====================

    /**
     * 获取通知配置
     */
    AlertNotification getNotifications(Long tenantId);

    /**
     * 更新通知配置
     */
    StockAlertNotification updateNotifications(Long tenantId, AlertNotification notification);
}
