using System;
using System.Threading.Tasks;
namespace LiveForum.IService.Posts
{
///
/// 发帖/回复时间间隔校验服务接口
///
public interface IPostReplyIntervalService
{
///
/// 获取用户的发帖间隔配置(秒)
///
/// 用户ID
/// 发帖间隔秒数,未配置返回 0
Task GetPostIntervalAsync(long userId);
///
/// 获取用户的回复间隔配置(秒)
///
/// 用户ID
/// 回复间隔秒数,未配置返回 0
Task GetReplyIntervalAsync(long userId);
///
/// 获取用户最近一次成功发帖时间
///
/// 用户ID
/// 最近发帖时间,从未发帖返回 null
Task GetLastPostTimeAsync(long userId);
///
/// 获取用户最近一次成功回复时间
///
/// 用户ID
/// 最近回复时间,从未回复返回 null
Task GetLastCommentTimeAsync(long userId);
///
/// 校验发帖间隔,返回 null 表示通过,否则返回剩余秒数
///
/// 用户ID
/// null 表示通过校验,int 值表示还需等待的秒数
Task CheckPostIntervalAsync(long userId);
///
/// 校验回复间隔,返回 null 表示通过,否则返回剩余秒数
///
/// 用户ID
/// null 表示通过校验,int 值表示还需等待的秒数
Task CheckReplyIntervalAsync(long userId);
}
}