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