package com.ruoyi.base.service;

import java.util.List;
import com.ruoyi.base.domain.RobotOpsBroadcastContent;

/**
 * 播报内容Service接口
 *
 * @author ruoyi
 * @date 2026-04-27
 */
public interface IRobotOpsBroadcastContentService
{
    /**
     * 查询播报内容
     *
     * @param id 播报内容主键
     * @return 播报内容
     */
    public RobotOpsBroadcastContent selectRobotOpsBroadcastContentById(Long id);

    /**
     * 查询播报内容列表
     *
     * @param robotOpsBroadcastContent 播报内容
     * @return 播报内容集合
     */
    public List<RobotOpsBroadcastContent> selectRobotOpsBroadcastContentList(RobotOpsBroadcastContent robotOpsBroadcastContent);

    /**
     * 新增播报内容
     *
     * @param robotOpsBroadcastContent 播报内容
     * @return 结果
     */
    public int insertRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);

    /**
     * 修改播报内容
     *
     * @param robotOpsBroadcastContent 播报内容
     * @return 结果
     */
    public int updateRobotOpsBroadcastContent(RobotOpsBroadcastContent robotOpsBroadcastContent);

    /**
     * 批量删除播报内容
     *
     * @param ids 需要删除的播报内容主键集合
     * @return 结果
     */
    public int deleteRobotOpsBroadcastContentByIds(Long[] ids);

    /**
     * 删除播报内容信息
     *
     * @param id 播报内容主键
     * @return 结果
     */
    public int deleteRobotOpsBroadcastContentById(Long id);

    /**
     * 合成音频（异步）
     *
     * @param id 播报内容主键
     */
    public void synthesizeAudio(Long id);

    /**
     * 重新合成音频（异步）
     * 先删除旧音频，再合成新的
     *
     * @param id 播报内容主键
     */
    public void regenerateAudio(Long id);

    /**
     * 检查是否正在合成中
     *
     * @param id 播报内容主键
     * @return true=正在合成中，false=未在合成
     */
    public boolean isSynthesizing(Long id);
}
