package com.ruoyi.zdsz.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
import com.ruoyi.zdsz.domain.bo.ZEngineeringPipeJackingBo;
import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;

import java.util.Collection;
import java.util.Date;
import java.util.List;

/**
 * 照片Service接口
 *
 * @author ruoyi
 * @date 2023-12-27
 */
public interface IZEngiineeringPhotoService {

    /**
     * 查询照片
     */
    ZEngiineeringPhotoVo queryById(String id);
    /**
     * 查询照片列表
     */
    List<String> queryList(ZEngineeringInfoBo bo);
    List<String> queryInsertList(ZEngineeringInfoBo bo);

    /**
     * 根据类型查询照片
     * @param bo
     * @return
     */
    List<String> queryTypeList(ZEngineeringInfoBo bo,String Type);

    /**
     * 查询照片列表
     */
    TableDataInfo<ZEngiineeringPhotoVo> queryPageList(ZEngiineeringPhotoBo bo, PageQuery pageQuery);

    /**
     * 查询照片列表
     */
    List<ZEngiineeringPhotoVo> queryList(ZEngiineeringPhotoBo bo);

    /**
     * 新增照片
     */
    Boolean insertByBo(ZEngiineeringPhotoBo bo);

    /**
     * 批量插入并返回id集合
     * @param bo
     * @return
     */
    Boolean insertBatch(List<ZEngiineeringPhoto> bo);

    /**
     * 修改照片
     */
    Boolean updateByBo(ZEngiineeringPhotoBo bo);

    /**
     * 批量修改照片并删除obs信息
     * @param bo
     * @return
     */
    Boolean updateBatch(List<ZEngiineeringPhoto> bo);

    /**
     * 校验并批量删除照片信息
     */
    Boolean delete(ZEngineeringInfoBo bo);
    //删除记录但不释放资源
    Boolean deleteNodelFiles(ZEngineeringInfoBo bo);

    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    Boolean deleteWithValidByurls(String url);
    Boolean deleteWithValid(ZEngiineeringPhoto bo);
    void write(ZEngineeringCivilBo zEngineeringCivilBo);
    void writeImg(List<ZEngineeringInfoBo> infoIdList, ZEngineeringInfoBo bo,String engInfoName);
}
