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


import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.common.business.dto.cmd.LastIdCmd;
import com.red.circle.common.business.dto.cmd.app.AppIdLongCmd;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxAwardCmdExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxAwardConfigQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxAwardRecordQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxBountyConfigQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxClaimTaskCmdExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxCountQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxFortuneValueQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxOpenBoxCmdExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxStandardConfigQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxUserAwardNumberQryExe;
import com.red.circle.other.app.command.game.luckybox.GameLuckyBoxUserAwardQryExe;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxAwardCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxAwardConfigCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxBountyConfigCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxCountCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxFortuneValueCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxStandardConfigCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxUserAwardCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxUserAwardRecordCO;
import com.red.circle.other.app.dto.cmd.game.GameLuckyBoxAwardCmd;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * 新 luckyBox 服务
 *
 * @author zongpubin on 2023/8/26
 */
@Service
@RequiredArgsConstructor
public class GameNewLuckyBoxServiceImpl implements GameNewLuckyBoxService {

  private final GameLuckyBoxAwardCmdExe gameLuckyBoxAwardCmdExe;
  private final GameLuckyBoxCountQryExe gameLuckyBoxCountQryExe;
  private final GameLuckyBoxOpenBoxCmdExe gameLuckyBoxOpenBoxCmdExe;
  private final GameLuckyBoxClaimTaskCmdExe gameLuckyBoxClaimTaskCmdExe;
  private final GameLuckyBoxUserAwardQryExe gameLuckyBoxUserAwardQryExe;
  private final GameLuckyBoxAwardConfigQryExe gameLuckyBoxAwardConfigQryExe;
  private final GameLuckyBoxAwardRecordQryExe gameLuckyBoxAwardRecordQryExe;
  private final GameLuckyBoxBountyConfigQryExe gameLuckyBoxBountyConfigQryExe;
  private final GameLuckyBoxFortuneValueQryExe gameLuckyBoxFortuneValueQryExe;
  private final GameLuckyBoxStandardConfigQryExe gameLuckyBoxStandardConfigQryExe;
  private final GameLuckyBoxUserAwardNumberQryExe gameLuckyBoxUserAwardNumberQryExe;


  @Override
  public List<GameLuckyBoxStandardConfigCO> getLuckyBoxStandardConfig(AppExtCommand cmd) {
    return gameLuckyBoxStandardConfigQryExe.execute(cmd);
  }

  @Override
  public List<GameLuckyBoxBountyConfigCO> getLuckyBoxBountyConfig(AppExtCommand cmd) {
    return gameLuckyBoxBountyConfigQryExe.execute(cmd);
  }

  @Override
  public GameLuckyBoxFortuneValueCO getLuckyBoxFortuneValue(AppExtCommand cmd) {
    return gameLuckyBoxFortuneValueQryExe.execute(cmd);
  }

  @Override
  public List<GameLuckyBoxCountCO> getLuckyBoxCount(LastIdCmd cmd) {
    return gameLuckyBoxCountQryExe.execute(cmd);
  }

  @Override
  public List<GameLuckyBoxAwardConfigCO> getLuckyBoxAward(AppExtCommand cmd) {
    return gameLuckyBoxAwardConfigQryExe.execute(cmd);
  }

  @Override
  public GameLuckyBoxUserAwardCO getLuckyBoxUserAward(AppExtCommand cmd) {
    return gameLuckyBoxUserAwardQryExe.execute(cmd);
  }

  @Override
  public GameLuckyBoxAwardCO luckyBoxAward(GameLuckyBoxAwardCmd cmd) {
    return gameLuckyBoxAwardCmdExe.execute(cmd);
  }

  @Override
  public List<GameLuckyBoxUserAwardRecordCO> getLuckyBoxAwardRecord(AppExtCommand cmd) {
    return gameLuckyBoxAwardRecordQryExe.execute(cmd);
  }

  @Override
  public Integer getLuckyBoxUserAwardNumber(AppExtCommand cmd) {
    return gameLuckyBoxUserAwardNumberQryExe.execute(cmd);
  }

  @Override
  public void claimTask(AppIdLongCmd cmd) {
    gameLuckyBoxClaimTaskCmdExe.execute(cmd);
  }

  @Override
  public void openBox(AppIdLongCmd cmd) {
    gameLuckyBoxOpenBoxCmdExe.execute(cmd);
  }
}
