package com.yuchen.saas.park.service.service.elevator;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuchen.saas.park.api.entity.elevator.SaasParkElevatorMonitorRunningStateEntity;
import com.yuchen.saas.park.api.request.ElevatorMonitorRunningStateRequest;
import com.yuchen.saas.park.api.request.ThirdCallElevatorRequest;
import com.yuchen.saas.park.api.response.ElevatorMonitorRunningStateResponse;
import com.yuchen.saas.park.api.response.ThirdElevatorMonitorRunningStateResponse;
import org.nest.springwrap.core.mp.support.Query;
import org.nest.springwrap.core.tool.api.R;

/**
 * <p>
 * 梯控-电梯监测-运行状态 服务类
 * </p>
 *
 * @author baichaojie
 * @since 2024-06-21
 */
public interface ISaasParkElevatorMonitorRunningStateService extends IService<SaasParkElevatorMonitorRunningStateEntity> {

    /**
     * 梯控-电梯监测-电梯运行-运行状态分页列表
     * @param elevatorMonitorRunningStateRequest
     * @param query
     * @return
     */
    R<IPage<ElevatorMonitorRunningStateResponse>> list(ElevatorMonitorRunningStateRequest elevatorMonitorRunningStateRequest, Query query);


    R<IPage<ThirdElevatorMonitorRunningStateResponse>> thirdList(ElevatorMonitorRunningStateRequest elevatorMonitorRunningStateRequest, Query query);

    /**
     * 接收到IOT的消息
     * @param jsonObjectContent
     * @return
     * @throws Exception
     */
    boolean receiveIotEvent(String jsonObjectContent) throws Exception;

    /**
     * 呼梯
     * @param thirdCallElevatorRequest
     * @return
     */
    boolean callElevator(ThirdCallElevatorRequest thirdCallElevatorRequest);

    /**
     * 保持电梯开门状态
     * @param id
     * @return
     */
    boolean keepElevatorDoor(Long id,int status);

}
