package com.aiotagro.cattletrade.business.service;

import com.aiotagro.cattletrade.business.dto.WarehouseInCreateDto;
import com.aiotagro.cattletrade.business.dto.WarehouseInDto;
import com.aiotagro.cattletrade.business.dto.WarehouseInEditDto;
import com.aiotagro.cattletrade.business.entity.WarehouseIn;
import com.aiotagro.cattletrade.business.vo.WarehouseInVo;
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 IWarehouseInService extends IService<WarehouseIn> {

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

    /**
     * 新增进仓记录
     *
     * @param dto 进仓创建DTO
     * @return AjaxResult
     */
    AjaxResult addWarehouseIn(WarehouseInCreateDto dto);

    /**
     * 更新进仓记录
     *
     * @param dto 进仓编辑DTO
     * @return AjaxResult
     */
    AjaxResult updateWarehouseIn(WarehouseInEditDto dto);

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

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

