package com.aiotagro.cattletrade.business.service;

import com.aiotagro.cattletrade.business.dto.WarehouseOutCreateDto;
import com.aiotagro.cattletrade.business.dto.WarehouseOutDto;
import com.aiotagro.cattletrade.business.dto.WarehouseOutEditDto;
import com.aiotagro.cattletrade.business.entity.WarehouseOut;
import com.aiotagro.cattletrade.business.vo.WarehouseOutVo;
import com.aiotagro.common.core.web.domain.AjaxResult;
import com.aiotagro.common.core.web.domain.PageResultResponse;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 出仓管理服务接口
 *
 * @author System
 * @date 2025-01-20
 */
public interface IWarehouseOutService extends IService<WarehouseOut> {

    /**
     * 分页查询出仓列表
     *
     * @param dto 查询参数
     * @return 分页结果
     */
    PageResultResponse<WarehouseOutVo> pageQuery(WarehouseOutDto dto);

    /**
     * 新增出仓记录
     *
     * @param dto 出仓创建DTO
     * @return AjaxResult
     */
    AjaxResult addWarehouseOut(WarehouseOutCreateDto dto);

    /**
     * 更新出仓记录
     *
     * @param dto 出仓编辑DTO
     * @return AjaxResult
     */
    AjaxResult updateWarehouseOut(WarehouseOutEditDto dto);

    /**
     * 删除出仓记录（逻辑删除）
     *
     * @param id 出仓记录ID
     * @return AjaxResult
     */
    AjaxResult deleteWarehouseOut(Integer id);

    /**
     * 获取出仓详情
     *
     * @param id 出仓记录ID
     * @return AjaxResult
     */
    AjaxResult getWarehouseOutDetail(Integer id);
}

