package com.cmvr.inspection.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cmvr.inspection.domain.InspectionTask;
import com.cmvr.inspection.domain.InspectionWaypoint;
import com.cmvr.inspection.domain.vo.InspectionTaskVo;
/**
 * 巡检任务Service接口
 * 
 * @author cmvr-iot
 * @since 2026-05-29
 */
public interface IInspectionTaskService extends IService<InspectionTask>
{
    /**
     * 查询巡检任务
     * 
     * @param id 巡检任务主键
     * @return 巡检任务
     */
    InspectionTask selectInspectionTaskById(String id);

    /**
     * 查询巡检任务列表
     * 
     * @param inspectionTask 巡检任务
     * @return 巡检任务集合
     */
    List<InspectionTaskVo> selectInspectionTaskList(InspectionTask inspectionTask);

    /**
     * 新增巡检任务
     * 
     * @param inspectionTask 巡检任务
     * @return 结果
     */
    int insertInspectionTask(InspectionTask inspectionTask);

    /**
     * 修改巡检任务
     * 
     * @param inspectionTask 巡检任务
     * @return 结果
     */
    int updateInspectionTask(InspectionTask inspectionTask);

    /**
     * 批量删除巡检任务
     * 
     * @param ids 需要删除的巡检任务主键集合
     * @return 结果
     */
    int deleteInspectionTaskByIds(String[] ids);

    /**
     * 查询任务关联的点位列表
     * 
     * @param taskId 任务ID
     * @return 点位集合
     */
    List<InspectionWaypoint> selectWaypointsByTaskId(String taskId);

    /**
     * 绑定点位到任务
     * 
     * @param taskId 任务ID
     * @param waypointIds 点位ID数组
     * @return 结果
     */
    int bindWaypoints(String taskId, String[] waypointIds);

    /**
     * 解绑任务的点位
     * 
     * @param taskId 任务ID
     * @return 结果
     */
    int unbindWaypoints(String taskId);
}
