live-forum/server/webapi/LiveForum/LiveForum.IService/Posts/IPostReplyIntervalService.cs
2026-03-24 11:27:37 +08:00

54 lines
2.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}