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


import com.red.circle.common.business.dto.cmd.UserIdCommonCmd;
import com.red.circle.other.app.command.user.query.UserCpBlessRecordQueryExe;
import com.red.circle.other.app.command.user.query.UserCpCabinQueryExe;
import com.red.circle.other.app.command.user.query.UserCpCabinValueQueryExe;
import com.red.circle.other.app.dto.clientobject.user.user.CpBlessRecordCO;
import com.red.circle.other.app.dto.clientobject.user.user.UserCpCabinCO;
import com.red.circle.other.app.dto.clientobject.user.user.UserCpCabinUnreadCO;
import com.red.circle.other.app.dto.clientobject.user.user.UserCpCabinValueCO;
import com.red.circle.other.app.dto.cmd.user.user.UserCpBlessRecordQueryCmd;
import java.util.List;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;

/**
 * CP(小屋、祝福)相关
 * @author zongpubin on 2023/11/20
 */
@Service
@AllArgsConstructor
public class UserCpCabinServiceImpl implements UserCpCabinService {

  private final UserCpCabinQueryExe userCpCabinQueryExe;
  private final UserCpCabinValueQueryExe userCpCabinValueQueryExe;
  private final CpBlessRecordAndUpReadExe cpBlessRecordAndUpReadExe;
  private final UserCpBlessRecordQueryExe userCpBlessRecordQueryExe;

  @Override
  public UserCpCabinCO getCpCabinInfo(UserIdCommonCmd cmd) {
    return userCpCabinQueryExe.execute(cmd);
  }

  @Override
  public UserCpCabinValueCO getCpCabinValue(UserIdCommonCmd cmd) {
    return userCpCabinValueQueryExe.execute(cmd);
  }

  @Override
  public UserCpCabinUnreadCO getCpBlessRecordAndUpRead(UserIdCommonCmd cmd) {
    return cpBlessRecordAndUpReadExe.execute(cmd);
  }

  @Override
  public List<CpBlessRecordCO> pageCpBlessRecord(UserCpBlessRecordQueryCmd cmd) {
    return userCpBlessRecordQueryExe.execute(cmd);
  }
}
