package com.ruoyi.ibs.draw.service;

import com.ruoyi.ibs.draw.domain.dto.draw.ShapeAddDTO;
import com.ruoyi.ibs.draw.domain.dto.draw.ShapeInfoEditDTO;
import com.ruoyi.ibs.draw.domain.dto.draw.ShapeOverlapDTO;
import com.ruoyi.ibs.draw.domain.dto.draw.ShapeWktEditDTO;
import com.ruoyi.ibs.draw.domain.entity.DrawShape;
import com.ruoyi.ibs.draw.domain.vo.DrawShapeVO;

import java.util.List;

/**
 * @Author 吴凯程
 * @Date 2024/12/20
 **/
public interface DrawShapeService {

    String addShapeToLayer(ShapeAddDTO shapeAddDTO);

    String editShapeInfo(ShapeInfoEditDTO shapeInfoEditDTO);

    Boolean checkShapeNameValid(Long layerId, String shapeName);

    String editShapeWkt(ShapeWktEditDTO shapeWktEditDTO);

    String deleteShape(List<Long> idList);

    List<String> getWktsInLayersById(Long layerId, String opsDept);

    List<DrawShapeVO> getShapeList(Long layerId,Long shapeId,String shapeName,String updateBy,String ops, Boolean isRelate,String auditStatus);

    List<DrawShapeVO> getShapeAvailableList(Long layerId,String opsDept);

    Boolean checkShapeOverlap(ShapeOverlapDTO shapeOverlapDTO);

    Boolean checkShapeRelate(List<Long> shapeIds);

    void updateShapeRelate(Long shapeId);

    String updateCustList(Long shapeId);

    String isEdit(Long shapeId);
    
    public int insertAudit(DrawShape drawShape);

    String drawShapeReAudit(DrawShape drawShape);
}
