package com.erp.warehouse.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.erp.warehouse.dto.InboundOrderDTO.*;
import com.erp.warehouse.entity.InboundOrder;

/**
 * 入库管理服务接口
 * 支持：采购入库、退货入库、调拨入库
 */
public interface InboundService {

    /**
     * 创建入库单
     */
    InboundOrder createInboundOrder(CreateRequest request, Long operatorId);

    /**
     * 确认入库（实际增加库存）
     */
    InboundOrder confirmInbound(Long inboundOrderId, ConfirmRequest request);

    /**
     * 取消入库单
     */
    void cancelInbound(Long inboundOrderId);

    /**
     * 分页查询入库单
     */
    IPage<InboundOrder> listInboundOrders(String inboundType, Long warehouseId, String status, int page, int limit);

    /**
     * 获取入库单详情
     */
    InboundOrder getInboundOrder(Long id);

    /**
     * 根据入库单号获取
     */
    InboundOrder getInboundOrderByNo(String inboundNo);
}
