package com.securitycontrol.background.service;


import com.securitycontrol.common.core.domain.Result;
import com.securitycontrol.entity.background.dto.AreaDto;
import com.securitycontrol.entity.background.vo.AreaVo;
import com.securitycontrol.entity.background.vo.GtVo;
import com.securitycontrol.entity.screen.vo.ProCostVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 区域管理 业务接口层
 * @author 黑子
 */
public interface TbAreaService {

    /**
     * 获取区域列表的集合
     * @param dto
     * @return
     */
    List<AreaVo> getAreaList(AreaDto dto);

    /**
     * 新增区域列表
     * @param dto
     * @return
     */
    Result<String> addArea(AreaVo dto);

    /**
     * 修改区域
     * @param dto
     * @return
     */
    Result<String> updateArea(AreaVo dto);

    /**
     * 删除区域接口
     * @param dto
     * @return
     */
    Result<String> deleteArea(AreaDto dto);

    /**
     * 查询杆塔信息集合
     * @param dto
     * @return
     */
    List<GtVo> getGtList(AreaDto dto);

    /**
     * 新增杆塔信息
     * @param dto
     * @return
     */
    Result<String> addGtData(GtVo dto);

    /**
     * 修改杆塔信息
     * @param dto
     * @return
     */
    Result<String> updateGtData(GtVo dto);

    /**
     * 删除杆塔信息
     * @param dto
     * @return
     */
    Result<String> deleteGt(GtVo dto);

    /**
     * 依据区域查询id
     * @param dto
     * @return
     */
    Result<AreaVo> getAreaById(AreaDto dto);

    /**
     * 依据id查询 杆塔
     * @param dto
     * @return
     */
    Result<GtVo> getGtById(AreaDto dto);

    /**
     * 查询三维文件集合
     * @param dto
     * @return
     */
    List<AreaVo> getSwList(AreaDto dto);

    /**
     * 新增三维文件
     * @param files
     * @param dto
     * @return
     */
    Result<String> addSwFile(MultipartFile[] files, AreaVo dto);

    /**
     * 修改三维文件
     * @param files
     * @param dto
     * @return
     */
    Result<String> updateSwFile(MultipartFile[] files, AreaVo dto);

    /**
     * 删除三维文件
     * @param dto
     * @return
     */
    Result<String> deleteSwFile( AreaVo dto);

    /**
     * 分页查询工程成本信息
     * @param dto
     * @return
     */
    List<ProCostVo> getProCostList(AreaDto dto);

    /**
     * 新增工程成本
     * @param dto
     * @return
     */
    Result<String> addCost(ProCostVo dto);

    /**
     * 修改工程成本
     * @param dto
     * @return
     */
    Result<String> updateCost(ProCostVo dto);

    /**
     * 删除成本数据
     * @param dto
     * @return
     */
    Result<String> deleteCost(ProCostVo dto);
}
