package com.erp.tenant.service.stock;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.erp.tenant.dto.stock.StockPageResponse;
import com.erp.tenant.entity.stock.Stock;
import com.erp.tenant.entity.stock.StockAlert;

/**
 * 租户端库存服务接口
 */
public interface StockService {

    /**
     * 库存分页列表（租户查看）
     */
    IPage<Stock> getStockPage(Long tenantId, Long warehouseId, int page, int pageSize);

    /**
     * 库存预警列表
     */
    IPage<Stock> getAlertPage(Long tenantId, Long warehouseId, String keyword,
                               String alertLevel, int page, int pageSize);

    /**
     * 库存预警摘要
     */
    StockAlertSummary getAlertSummary(Long tenantId);

    /**
     * 库存详情
     */
    Stock getStockDetail(Long tenantId, Long stockId);

    /**
     * 预扣库存（冻结）
     */
    boolean freezeStock(Long tenantId, Long warehouseId, String skuCode, Integer quantity, Long orderId);

    /**
     * 释放库存（解冻）
     */
    boolean unfreezeStock(Long tenantId, Long warehouseId, String skuCode, Integer quantity, Long orderId);

    class StockAlertSummary {
        public Long critical;
        public Long warning;
        public Long total;
        public Integer globalThreshold;
    }
}
