live-forum/server/webapi/LiveForum/LiveForum.Model/Events/MessageEvents.cs
2026-03-24 11:27:37 +08:00

157 lines
3.8 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;
namespace LiveForum.Model.Events
{
/// <summary>
/// 消息事件基类
/// </summary>
public abstract class MessageEventBase
{
/// <summary>
/// 事件唯一ID
/// </summary>
public string EventId { get; set; } = Guid.NewGuid().ToString();
/// <summary>
/// 事件发生时间
/// </summary>
public DateTime OccurredAt { get; set; } = DateTime.Now;
/// <summary>
/// 触发用户ID发送消息的用户
/// </summary>
public long TriggerId { get; set; }
/// <summary>
/// 接收消息的用户ID
/// </summary>
public long ReceiverId { get; set; }
/// <summary>
/// 事件类型名称
/// </summary>
public abstract string EventType { get; }
}
/// <summary>
/// 内容快照(帖子、评论等)
/// </summary>
public class ContentSnapshot
{
/// <summary>
/// 帖子ID
/// </summary>
public long? PostId { get; set; }
/// <summary>
/// 帖子标题
/// </summary>
public string PostTitle { get; set; }
/// <summary>
/// 评论ID
/// </summary>
public long? CommentId { get; set; }
/// <summary>
/// 评论内容
/// </summary>
public string CommentContent { get; set; }
}
/// <summary>
/// 点赞事件
/// </summary>
public class LikeEvent : MessageEventBase
{
public override string EventType => "Like";
/// <summary>
/// 点赞目标类型1-帖子2-评论3-送花
/// </summary>
public byte ContentType { get; set; }
/// <summary>
/// 点赞目标ID
/// </summary>
public long ContentId { get; set; }
/// <summary>
/// 内容快照(帖子标题或评论内容)
/// </summary>
public ContentSnapshot Content { get; set; }
}
/// <summary>
/// 评论回复事件
/// </summary>
public class CommentReplyEvent : MessageEventBase
{
public override string EventType => "CommentReply";
/// <summary>
/// 新评论ID
/// </summary>
public long CommentId { get; set; }
/// <summary>
/// 评论内容
/// </summary>
public string CommentContent { get; set; }
/// <summary>
/// 帖子ID
/// </summary>
public long PostId { get; set; }
/// <summary>
/// 帖子标题
/// </summary>
public string PostTitle { get; set; }
/// <summary>
/// 父评论ID如果是回复评论
/// </summary>
public long? ParentCommentId { get; set; }
/// <summary>
/// 我的评论内容(被回复的评论内容)
/// </summary>
public string MyCommentContent { get; set; }
/// <summary>
/// 是否是直接评论帖子false表示回复评论
/// </summary>
public bool IsDirectComment { get; set; }
}
/// <summary>
/// 自定义消息事件(用于简化版消息发送)
/// </summary>
public class CustomMessageEvent : MessageEventBase
{
public override string EventType => "Custom";
/// <summary>
/// 消息类型1-回复消息2-点赞消息
/// </summary>
public int MessageType { get; set; }
/// <summary>
/// 消息标题
/// </summary>
public string Title { get; set; }
/// <summary>
/// 消息内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 我的评论内容(可选,用于回复消息)
/// </summary>
public string MyCommentContent { get; set; }
}
}