package com.ruoyi.web.modules.video.support;

import java.util.List;
import com.ruoyi.web.modules.video.domain.dto.OpenCameraDto;
import com.ruoyi.web.modules.video.domain.dto.OpenCameraPlayUrlDto;

/**
 * 第三方监控摄像头 HTTP/stub 客户端。
 * <p>
 * 与牧场 {@link com.ruoyi.web.modules.industryservice.support.ThirdPartyFarmClient} 共用
 * {@code third-party.farming} 配置（{@code enabled}、{@code mode=stub|http}、鉴权头等）。
 * {@code mode=stub} 时读取 classpath {@code thirdparty/stub-cameras.json} 样例。
 * </p>
 */
public interface ThirdPartyCameraClient
{
    /**
     * 分页拉取全部监控点位直至无下一页。
     * 接口：{@code GET /open-api/v1/iot/cameras?pageNum=&pageSize=}，{@code code=0} 为成功。
     *
     * @return 全量摄像头列表，可能为空列表
     */
    List<OpenCameraDto> fetchAllCameras();

    /**
     * 拉取单路摄像头可播放 URL。
     * 接口：{@code GET /open-api/v1/iot/cameras/{cameraId}/play-url}
     *
     * @param cameraId 第三方摄像头编号
     */
    OpenCameraPlayUrlDto fetchPlayUrl(Long cameraId);
}
