package com.red.circle.other.app.inner.service.activity;

import com.red.circle.other.inner.model.dto.activity.InviteExtractRecordCountDTO;
import com.red.circle.other.inner.model.dto.activity.InviteRegisterRecordCountDTO;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 邀请注册 活动.
 *
 * @author pengliang on 2023/5/26
 */
public interface InviteActivityCountClientService {

  /**
   * 保存邀请记录.
   */
  void add(InviteRegisterRecordCountDTO count);

  /**
   * 增加金额
   */
  void inc(Long toUserId, Long quantity);

  /**
   * 获得邀请记录.
   */
  List<InviteRegisterRecordCountDTO> list(Long userId);

  /**
   * 获取记录信息.
   */
  List<InviteRegisterRecordCountDTO> list(Long userId, Long toUserId,
      LocalDateTime startTime,
      LocalDateTime endTime);

  /**
   * 增加领取记录
   */
  void addExtract(Long userId, Long quantity, String sysOrigin);

  /**
   * 获得领取记录.
   */
  List<InviteExtractRecordCountDTO> listExtract(String sysOriginName);

}
