package com.red.circle.live.app.service;

import com.red.circle.common.business.dto.cmd.app.AppRoomIdCmd;
import com.red.circle.live.app.dto.clientobject.LiveMicrophoneCO;
import com.red.circle.live.app.dto.cmd.*;

import java.util.List;

/**
 * 直播麦克风服务.
 *
 * @author pengliang on 2023/12/8
 */
public interface LiveMicrophoneService {

  /**
   * 上麦克风.
   */
  LiveMicrophoneCO goUp(MicUpDownCmd cmd);

  /**
   * 下麦克风.
   */
  void goDown(MicUpDownCmd cmd);

  /**
   * 获取麦克风列表.
   */
  List<LiveMicrophoneCO> listMic(AppRoomIdCmd cmd);

  /**
   * 麦克风锁.
   */
  void lock(MicLockCmd cmd);

  /**
   * 麦克风静音.
   */
  void mute(MicMuteCmd cmd);

  /**
   * T麦克风.
   */
  void kill(MicKillCmd cmd);

  /**
   * 初始化麦克风.
   */
  void init(AppRoomIdCmd cmd);

  /**
   * 处理幽灵麦用户信息
   */
  void bannedLiveUser(String account);

  void bannedLiveUser(MicBlockCmd cmd);
}
