package com.aiotagro.cattletrade.business.service;

import com.aiotagro.cattletrade.business.dto.WarehouseCreateDto;
import com.aiotagro.cattletrade.business.dto.WarehouseDto;
import com.aiotagro.cattletrade.business.dto.WarehouseEditDto;
import com.aiotagro.cattletrade.business.entity.Warehouse;
import com.aiotagro.common.core.web.domain.AjaxResult;
import com.aiotagro.common.core.web.domain.PageResultResponse;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 中转仓管理服务接口
 *
 * @author System
 * @date 2025-01-20
 */
public interface IWarehouseService extends IService<Warehouse> {

    /**
     * 分页查询中转仓列表
     *
     * @param dto 查询参数
     * @return 分页结果
     */
    PageResultResponse<Warehouse> pageQuery(WarehouseDto dto);

    /**
     * 新增中转仓
     *
     * @param dto 中转仓创建DTO
     * @return AjaxResult
     */
    AjaxResult addWarehouse(WarehouseCreateDto dto);

    /**
     * 更新中转仓信息
     *
     * @param dto 中转仓编辑DTO
     * @return AjaxResult
     */
    AjaxResult updateWarehouse(WarehouseEditDto dto);

    /**
     * 删除中转仓（逻辑删除）
     *
     * @param id 中转仓ID
     * @return AjaxResult
     */
    AjaxResult deleteWarehouse(Integer id);

    /**
     * 获取中转仓详情
     *
     * @param id 中转仓ID
     * @return AjaxResult
     */
    AjaxResult getWarehouseDetail(Integer id);

    /**
     * 获取所有启用的中转仓（下拉选择用）
     *
     * @return 中转仓列表
     */
    List<Warehouse> getAllEnabled();
}

