网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System;
using Dpz.Core.Infrastructure.MapperConfig;
using Dpz.Core.Public.Entity;

#nullable enable

namespace Dpz.Core.Public.ViewModel;

/// <summary>
/// AI聊天会话视图模型
/// </summary>
public class VmAiChatSession : IMapFrom<AiChatSession>
{
    public string? Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public string? UserId { get; set; } = string.Empty;

    /// <summary>
    /// 会话ID(GUID)
    /// </summary>
    public string SessionId { get; set; } = string.Empty;

    /// <summary>
    /// 会话名称
    /// </summary>
    public string SessionName { get; set; } = string.Empty;

    /// <summary>
    /// AI模型类型(存储AiModel枚举值转换为字符串)
    /// 默认为 "Gpt5Mini"
    /// </summary>
    public string ModelType { get; set; } = string.Empty;

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreateTime { get; set; }

    /// <summary>
    /// 最后更新时间
    /// </summary>
    public DateTime LastUpdateTime { get; set; }

    /// <summary>
    /// 是否已删除
    /// </summary>
    public bool IsDeleted { get; set; }

    /// <summary>
    /// 消息数量(扩展属性,不映射)
    /// </summary>
    public int MessageCount { get; set; }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

这段代码定义了一个名为 VmAiChatSession 的视图模型类,用于表示AI聊天会话的相关信息。下面是对代码的详细解释:

1. 命名空间和依赖

using System;
using Dpz.Core.Infrastructure.MapperConfig;
using Dpz.Core.Public.Entity;
  • 引用了必要的命名空间:
    • System:基础系统库。
    • Dpz.Core.Infrastructure.MapperConfig:可能包含对象映射配置(如 IMapFrom 接口)。
    • Dpz.Core.Public.Entity:包含实体类(如 AiChatSession)。

2. 类定义

public class VmAiChatSession : IMapFrom<AiChatSession>
  • VmAiChatSession 是一个视图模型类,用于前端展示或API传输。
  • 实现了 IMapFrom<AiChatSession> 接口,表明它可以与 AiChatSession 实体类相互映射(可能是通过AutoMapper等工具)。

3. 属性说明

以下是类的属性及其用途:

基础信息

public string? Id { get; set; }
  • 会话的唯一标识符,可为 nullstring? 表示可空字符串)。

用户关联

public string? UserId { get; set; } = string.Empty;
  • 关联的用户ID,默认为空字符串。

会话标识

public string SessionId { get; set; } = string.Empty;
  • 会话的唯一ID(GUID格式),用于区分不同聊天会话。

会话名称

public string SessionName { get; set; } = string.Empty;
  • 用户为会话定义的名称(例如"技术支持对话")。

AI模型类型

public string ModelType { get; set; } = string.Empty;
  • 使用的AI模型类型(如 Gpt5Mini),存储为字符串形式(可能对应枚举值)。

时间戳

public DateTime CreateTime { get; set; }
public DateTime LastUpdateTime { get; set; }
  • CreateTime:会话创建时间。
  • LastUpdateTime:会话最后更新时间。

删除标记

public bool IsDeleted { get; set; }
  • 软删除标志,表示会话是否被逻辑删除。

扩展属性

public int MessageCount { get; set; }
  • 不映射到实体的扩展属性,用于前端显示会话中的消息数量。

4. 其他特性

#nullable enable
  • 启用可空引用类型特性,要求显式处理可能为 null 的属性(如 IdUserId)。

5. 用途

  • 数据传输:作为DTO(Data Transfer Object)在服务层和客户端之间传递会话数据。
  • 映射能力:通过 IMapFrom<AiChatSession> 支持与实体类 AiChatSession 的自动转换。
  • 扩展性MessageCount 等属性可灵活扩展,无需修改底层实体。

总结

VmAiChatSession 是一个轻量级的视图模型,封装了AI聊天会话的核心信息,并提供了与实体类的映射能力,适合在分层架构中解耦数据层与展示层。

loading