package com.red.circle.console.app.service.app.count;

import com.red.circle.console.app.dto.clienobject.count.QualityUserMonthlyRechargeCO;
import com.red.circle.console.app.dto.clienobject.count.QualityUserMonthlyRechargesCO;
import com.red.circle.console.app.dto.clienobject.count.QualityUserTableCO;
import com.red.circle.console.app.dto.clienobject.count.UserMonthlyRechargeCO;
import com.red.circle.console.app.dto.cmd.app.count.CountQualityUsersRemarkCmd;
import com.red.circle.framework.dto.PageResult;
import com.red.circle.order.inner.model.cmd.MonthlyRechargePageTableQry;
import com.red.circle.order.inner.model.cmd.QualityUserMonthlyPageTableQry;
import com.red.circle.order.inner.model.cmd.QualityUserPageTableQry;

/**
 * 高产用户.
 *
 * @author pengliang on 2024/1/23
 */
public interface QualityUserCountService {

  /**
   * 高产用户分页列表
   */
  PageResult<QualityUserTableCO> pageRechargeTable(QualityUserPageTableQry query);

  /**
   * 每月充值列表.
   */
  PageResult<QualityUserMonthlyRechargeCO> pageMonthly(QualityUserMonthlyPageTableQry query);

  /**
   * 每月充值.
   */
  PageResult<QualityUserMonthlyRechargesCO> pageMonthlyRecharge(MonthlyRechargePageTableQry qry);

  /**
   * 添加备注.
   */
  void addOrUpdateRemark(CountQualityUsersRemarkCmd cmd);

  /**
   * 本月充值明细.
   */
  UserMonthlyRechargeCO getThisMonthRecharge(Long userId);
}
