package com.red.circle.wallet.inner.service.diamond;

import com.red.circle.framework.dto.PageResult;
import com.red.circle.wallet.inner.model.cmd.UserSalaryDiamondRunningWaterQryCmd;
import com.red.circle.wallet.inner.model.dto.UserSalaryDiamondRunningWaterDTO;
import java.util.List;
import java.util.Map;

/**
 * 用户工资钻石流水
 *
 * @author zongpubin on 2024/3/14
 */
public interface SalaryDiamondRunningWaterClientService {

  void add(UserSalaryDiamondRunningWaterDTO salaryDiamondRunningWater);

  void addBatch(List<UserSalaryDiamondRunningWaterDTO> salaryDiamondRunningWater);

  PageResult<UserSalaryDiamondRunningWaterDTO> runningWaterPage(
      UserSalaryDiamondRunningWaterQryCmd query);

  /**
   * 是否存在跟踪id.
   */
  boolean existsTrackId(String trackId);

  /**
   * 是否存在跟踪id.
   */
  boolean existsTrackId(Long userId, String event, String trackId);

  Map<Integer, Long> getDiamondData(Long userId, Boolean isMonth);

  Map<Long, Long> getDiamondByUserIds(List<Long> userIds);
}
