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


import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.common.business.dto.cmd.LastIdCmd;
import com.red.circle.other.app.command.user.UserConfessionCmdExe;
import com.red.circle.other.app.command.user.query.UserConfessionChanceQryExe;
import com.red.circle.other.app.command.user.query.UserConfessionFloatQryExe;
import com.red.circle.other.app.command.user.query.UserConfessionGiftQryExe;
import com.red.circle.other.app.command.user.query.UserConfessionRecordQryExe;
import com.red.circle.other.app.dto.clientobject.user.user.ConfessionChanceCO;
import com.red.circle.other.app.dto.clientobject.user.user.ConfessionRecordCO;
import com.red.circle.other.app.dto.clientobject.user.user.UserConfessionFloatCO;
import com.red.circle.other.app.dto.cmd.user.user.UserConfessionCmd;
import com.red.circle.other.app.dto.cmd.user.user.UserConfessionRecordQryCmd;
import java.util.List;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * 用户告白相关
 *
 * @author zongpubin on 2023/11/14
 */
@Service
@AllArgsConstructor
public class UserConfessionServiceImpl implements UserConfessionService{
  private final UserConfessionCmdExe userConfessionCmdExe;
  private final UserConfessionGiftQryExe userConfessionGiftQryExe;
  private final UserConfessionFloatQryExe userConfessionFloatQryExe;
  private final UserConfessionRecordQryExe userConfessionRecordQryExe;
  private final UserConfessionChanceQryExe userConfessionChanceQryExe;

  @Override
  public UserConfessionFloatCO getUserConfessionFloatInfo(AppExtCommand cmd) {
    return userConfessionFloatQryExe.execute(cmd);
  }

  @Override
  public List<String> getUserConfessionGift(AppExtCommand cmd) {
    return userConfessionGiftQryExe.execute(cmd);
  }

  @Override
  public List<ConfessionRecordCO> getUserConfessionRecord(UserConfessionRecordQryCmd cmd) {
    return userConfessionRecordQryExe.execute(cmd);
  }

  @Override
  public List<ConfessionChanceCO> getUserConfessionChance(LastIdCmd cmd) {
    return userConfessionChanceQryExe.execute(cmd);
  }

  @Override
  public void confession(UserConfessionCmd cmd) {
    userConfessionCmdExe.execute(cmd);
  }
}
