157 lines
3.8 KiB
C#
157 lines
3.8 KiB
C#
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; }
|
||
}
|
||
}
|
||
|