package cn.iocoder.yudao.module.pms.service.laswelldata;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataPageReqVO;
import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSaveReqVO;
import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSetRespVO;
import cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata.LasWellDataDO;

import javax.validation.Valid;

/**
 * 数字油藏LAS数据文件-测井数据 Service 接口
 *
 * @author ruiqi
 */
public interface LasWellDataService {

    /**
     * 创建数字油藏LAS数据文件-测井数据
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createLasWellData(@Valid LasWellDataSaveReqVO createReqVO);

    /**
     * 更新数字油藏LAS数据文件-测井数据
     *
     * @param updateReqVO 更新信息
     */
    void updateLasWellData(@Valid LasWellDataSaveReqVO updateReqVO);

    /**
     * 删除数字油藏LAS数据文件-测井数据
     *
     * @param id 编号
     */
    void deleteLasWellData(Long id);

    /**
     * 获得数字油藏LAS数据文件-测井数据
     *
     * @param id 编号
     * @return 数字油藏LAS数据文件-测井数据
     */
    LasWellDataDO getLasWellData(Long id);

    /**
     * 获得数字油藏LAS数据文件-测井数据分页
     *
     * @param pageReqVO 分页查询
     * @return 数字油藏LAS数据文件-测井数据分页
     */
    PageResult<LasWellDataDO> getLasWellDataPage(LasWellDataPageReqVO pageReqVO);

    /**
     * 查询井及相关的各项测井数据集合
     * @param pageReqVO
     * @return
     */
    LasWellDataSetRespVO wellLogDataset(LasWellDataPageReqVO pageReqVO);
}