package com.red.circle.other.app.service.room;

import com.red.circle.other.app.command.room.RoomBlackJoinCmdExe;
import com.red.circle.other.app.command.room.RoomBlackRemoveCmdExe;
import com.red.circle.other.app.command.room.query.RoomBlackQryExe;
import com.red.circle.other.app.dto.clientobject.room.RoomBlackProcessCO;
import com.red.circle.other.app.dto.clientobject.room.RoomUserBlacklistCO;
import com.red.circle.other.app.dto.cmd.room.RoomBlackCmd;
import com.red.circle.other.app.dto.cmd.room.RoomBlackFlowQryCmd;
import com.red.circle.other.app.dto.cmd.room.RoomBlackRemoveCmd;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * 房间黑名单 实现.
 *
 * @author pengliang on 2023/9/21
 */
@Service
@RequiredArgsConstructor
public class BlacklistRoomServiceImpl implements BlacklistRoomService {

  private final RoomBlackQryExe roomBlackQryExe;
  private final RoomBlackJoinCmdExe roomBlackJoinCmdExe;
  private final RoomBlackRemoveCmdExe roomBlackRemoveCmdExe;

  @Override
  public RoomBlackProcessCO join(RoomBlackCmd cmd) {
    return roomBlackJoinCmdExe.execute(cmd);
  }

  @Override
  public List<RoomUserBlacklistCO> flowList(RoomBlackFlowQryCmd cmd) {
    return roomBlackQryExe.execute(cmd);
  }

  @Override
  public void remove(RoomBlackRemoveCmd cmd) {
    roomBlackRemoveCmdExe.execute(cmd);
  }

}
