LingAdmin/Backend/Services/Shared/LingAdmin.Shared/Events/UserEvents.cs

97 lines
2.8 KiB
C#
Raw Permalink Normal View History

2026-04-16 18:13:06 +08:00
namespace LingAdmin.Shared.Events;
/// <summary>
/// Dapr 事件主题常量
/// </summary>
public static class EventTopics
{
public const string PubSubName = "pubsub";
// 用户相关事件
public const string UserCreated = "user-created";
public const string UserUpdated = "user-updated";
public const string UserDeleted = "user-deleted";
public const string UserLoggedIn = "user-logged-in";
public const string UserLoggedOut = "user-logged-out";
public const string UserPasswordChanged = "user-password-changed";
// 角色相关事件
public const string RoleCreated = "role-created";
public const string RoleUpdated = "role-updated";
public const string RoleDeleted = "role-deleted";
public const string UserRoleAssigned = "user-role-assigned";
public const string UserRoleRevoked = "user-role-revoked";
// 权限相关事件
public const string PermissionCreated = "permission-created";
public const string PermissionUpdated = "permission-updated";
public const string RolePermissionChanged = "role-permission-changed";
}
/// <summary>
/// 用户创建事件
/// </summary>
public class UserCreatedEvent
{
public int UserId { get; set; }
public required string Email { get; set; }
public required string Name { get; set; }
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public string? Source { get; set; }
}
/// <summary>
/// 用户更新事件
/// </summary>
public class UserUpdatedEvent
{
public int UserId { get; set; }
public Dictionary<string, object?> ChangedFields { get; set; } = new();
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public int? UpdatedBy { get; set; }
}
/// <summary>
/// 用户登录事件
/// </summary>
public class UserLoggedInEvent
{
public int UserId { get; set; }
public required string Email { get; set; }
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public string? IpAddress { get; set; }
public string? UserAgent { get; set; }
}
/// <summary>
/// 用户登出事件
/// </summary>
public class UserLoggedOutEvent
{
public int UserId { get; set; }
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
}
/// <summary>
/// 用户角色分配事件
/// </summary>
public class UserRoleAssignedEvent
{
public int UserId { get; set; }
public List<int> RoleIds { get; set; } = new();
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public int? AssignedBy { get; set; }
}
/// <summary>
/// 角色权限变更事件
/// </summary>
public class RolePermissionChangedEvent
{
public int RoleId { get; set; }
public List<int> AddedPermissions { get; set; } = new();
public List<int> RemovedPermissions { get; set; } = new();
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
public int? ChangedBy { get; set; }
}