package cn.iocoder.yudao.module.smartfactory.service.factorykiln;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnPageReqVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnRespVO;
import cn.iocoder.yudao.module.smartfactory.controller.admin.factorykiln.vo.FactoryKilnSaveReqVO;
import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factorykiln.FactoryKilnDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 工厂窑炉 Service 接口
 *
 * @author 姚君
 */
public interface FactoryKilnService {

    /**
     * 创建工厂窑炉
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createFactoryKiln(@Valid FactoryKilnSaveReqVO createReqVO);

    /**
     * 更新工厂窑炉
     *
     * @param updateReqVO 更新信息
     */
    void updateFactoryKiln(@Valid FactoryKilnSaveReqVO updateReqVO);

    /**
     * 删除工厂窑炉
     *
     * @param id 编号
     */
    void deleteFactoryKiln(Long id);

    /**
     * 获得工厂窑炉
     *
     * @param id 编号
     * @return 工厂窑炉
     */
    FactoryKilnDO getFactoryKiln(Long id);

    /**
     * 获得工厂窑炉分页
     *
     * @param pageReqVO 分页查询
     * @return 工厂窑炉分页
     */
    PageResult<FactoryKilnRespVO> getFactoryKilnPage(FactoryKilnPageReqVO pageReqVO);

    /**
     * 通过工厂id获取窑炉列表
     *
     * @param factoryId
     * @return
     */
    List<FactoryKilnDO> getFactoryKilnByFactoryId(Long factoryId);
}
