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

import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.other.app.command.game.GameLuckyBoxLuckDrawExe;
import com.red.circle.other.app.command.game.query.GameLuckyBoxGiftLatestQryExe;
import com.red.circle.other.app.command.game.query.GameLuckyBoxGiftQryExe;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyBoxRewardCO;
import com.red.circle.other.app.dto.clientobject.game.GameLuckyUserListCO;
import com.red.circle.other.app.dto.cmd.game.GameLuckyBoxDrawCmd;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * <p>
 * lucky box 前端控制器.
 * </p>
 *
 * @author pengshigang
 * @since 2021-07-13
 */
@Service
@RequiredArgsConstructor
public class GameLuckyBoxServiceImpl implements GameLuckyBoxService {

  private final GameLuckyBoxGiftQryExe gameLuckyBoxGiftQryExe;
  private final GameLuckyBoxLuckDrawExe gameLuckyBoxLuckDrawExe;
  private final GameLuckyBoxGiftLatestQryExe gameLuckyBoxGiftLatestQryExe;

  @Override
  public GameLuckyBoxCO gift(AppExtCommand cmd) {
    return gameLuckyBoxGiftQryExe.execute(cmd);
  }

  @Override
  public List<GameLuckyBoxRewardCO> luckDraw(GameLuckyBoxDrawCmd cmd) {
    return gameLuckyBoxLuckDrawExe.execute(cmd);
  }

  @Override
  public List<GameLuckyUserListCO> luckyUserList(AppExtCommand cmd) {
    return gameLuckyBoxGiftLatestQryExe.execute(cmd);
  }
}
