- 将通用 Entities 命名空间拆分为具体业务实体子目录 - 更新所有实体类型引用为具体的 Entity 后缀类型 - 将 ModelType、ModelProvider、GroupMemberRole 等枚举重命名为 Enum 后缀 - 重构 AiModel 相关配置和映射逻辑适配新的实体结构 - 更新测试代码中的实体类型引用和枚举使用 - 调整应用层处理器中的实体创建和查询逻辑 - 修改 appsettings.json 中的基础设施主机配置为动态占位符模式
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using IM.Domain.Entities.Conversation;
|
||
using IM.Domain.Entities.ConversationParticipant;
|
||
using IM.Domain.Entities.Group;
|
||
using IM.Domain.Entities.GroupMember;
|
||
using IM.Domain.Enums;
|
||
|
||
namespace BuildFlow.IM.Tests;
|
||
|
||
/// <summary>
|
||
/// 测试数据工厂。集中处理 IFullAudit 实体的审计字段填充(InMemory 无 AuditInterceptor 自动补值)。
|
||
/// </summary>
|
||
internal static class ImTestData
|
||
{
|
||
private const string SystemUser = "system";
|
||
private const string LocalIp = "127.0.0.1";
|
||
|
||
/// <summary>构造一个带参与者的会话,审计字段已补齐。</summary>
|
||
internal static ConversationEntity BuildConversation(
|
||
Guid id,
|
||
ConversationTypeEnum type,
|
||
params (Guid UserId, int UnreadCount)[] participants)
|
||
{
|
||
var now = DateTime.UtcNow;
|
||
var conv = new ConversationEntity
|
||
{
|
||
Id = id,
|
||
Type = type,
|
||
CreatedBy = SystemUser,
|
||
CreatedAt = now,
|
||
UpdatedBy = SystemUser,
|
||
UpdatedAt = now,
|
||
OperatorIP = LocalIp,
|
||
};
|
||
|
||
foreach (var (userId, unread) in participants)
|
||
{
|
||
conv.Participants.Add(new ConversationParticipantEntity
|
||
{
|
||
ConversationId = id,
|
||
UserId = userId,
|
||
UnreadCount = unread,
|
||
JoinedAt = now,
|
||
CreatedBy = SystemUser,
|
||
CreatedAt = now,
|
||
UpdatedBy = SystemUser,
|
||
UpdatedAt = now,
|
||
});
|
||
}
|
||
|
||
return conv;
|
||
}
|
||
}
|