using System.Collections.Generic;
using System.Threading.Tasks;
namespace LiveForum.IService.Flowers
{
///
/// 送花服务接口
///
public interface IFlowerService
{
///
/// 检查是否可以送花(1小时限制检查,优先Redis)
///
/// 用户ID
/// 目标类型:Streamer(主播)/Post(帖子)
/// 目标ID
/// 是否可以送花
Task CanSendFlowerAsync(long userId, string targetType, long targetId);
///
/// 获取花数(优先Redis,再查数据库)
///
/// 目标类型:Streamer(主播)/Post(帖子)
/// 目标ID
/// 花数
Task GetFlowerCountAsync(string targetType, long targetId);
///
/// 批量查询花数(仅Post类型)
///
/// 目标类型:Streamer(主播)/Post(帖子)
/// 目标ID列表
/// 目标ID到花数的映射
Task> BatchGetFlowerCountAsync(string targetType, List targetIds);
///
/// 执行送花操作(Redis+队列)
///
/// 用户ID
/// 目标类型:Streamer(主播)/Post(帖子)
/// 目标ID
/// 接收者ID(用于消息通知)
/// 是否操作成功
Task SendFlowerAsync(long userId, string targetType, long targetId, long receiverId);
}
}