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

/**
 * 抽奖券Client服务.
 *
 * @author system
 * @since 2025-10-21
 */
public interface LotteryTicketClientService {

  /**
   * 获取用户抽奖券数量.
   *
   * @param userId 用户ID
   * @return 抽奖券数量
   */
  Integer getUserTicketCount(Long userId);

  /**
   * 扣减抽奖券.
   *
   * @param userId 用户ID
   * @param count 扣减数量
   * @return 是否成功
   */
  Boolean deductTicket(Long userId, Integer count);

  /**
   * 增加抽奖券.
   *
   * @param userId 用户ID
   * @param count 增加数量
   * @param source 来源
   * @param sourceId 来源ID
   * @return 是否成功
   */
  Long addTicket(Long userId, Long activityId, Integer count, String source, String sourceId);

}
