using System;
using System.Collections.Generic;
using Dpz.Core.Entity.Base.MapperConfig;
using Dpz.Core.Public.Entity;

namespace Dpz.Core.Public.ViewModel.Response;

public class ArticleResponse : IMapFrom<Article>
{
    public required string Id { get; set; }

    /// <summary>
    /// 文章标题
    /// </summary>
    public required string Title { get; set; }

    /// <summary>
    /// 简介
    /// </summary>
    public string? Introduction { get; set; }

    /// <summary>
    /// Markdown 内容
    /// </summary>
    public required string Markdown { get; set; }

    /// <summary>
    /// 主图片
    /// </summary>
    public string? MainImage { get; set; }

    /// <summary>
    /// 回复量
    /// </summary>
    public int CommentCount { get; set; }

    /// <summary>
    /// 查看量
    /// </summary>
    public int ViewCount { get; set; }

    /// <summary>
    /// 文章相关图片地址
    /// </summary>
    public List<string> ImagesAddress { get; set; } = [];

    /// <summary>
    /// 标签
    /// </summary>
    public List<string> Tags { get; set; } = [];

    /// <summary>
    /// 作者
    /// </summary>
    public VmUserInfo? Author { get; set; }

    /// <summary>
    /// 来源
    /// </summary>
    public string? From { get; set; }

    /// <summary>
    /// 发表时间
    /// </summary>
    public DateTime CreateTime
    {
        get => field.ToLocalTime();
        set;
    }

    /// <summary>
    /// 最后修改时间
    /// </summary>
    public DateTime LastUpdateTime
    {
        get => field.ToLocalTime();
        set;
    }

    /// <summary>
    /// 广告概率权重
    /// </summary>
    public double AdWeight { get; set; }
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

ArticleResponse 类解析

ArticleResponse 是一个用于表示文章响应数据的视图模型类,主要用于在应用程序中传输文章数据。以下是它的主要功能和属性解析:

类概述

  • 命名空间:Dpz.Core.Public.ViewModel.Response
  • 实现了 IMapFrom<Article> 接口,表明这个类可以从 Article 实体类映射而来
  • 使用了 C# 11 的 required 关键字标记必要属性

主要属性

  1. 基本信息

    • Id: 文章的唯一标识符 (必需)
    • Title: 文章标题 (必需)
    • Introduction: 文章简介 (可选)
  2. 内容相关

    • Markdown: 文章的 Markdown 格式内容 (必需)
    • MainImage: 文章主图片 URL (可选)
    • ImagesAddress: 文章相关图片地址列表 (默认为空列表)
  3. 统计信息

    • CommentCount: 文章回复/评论数量
    • ViewCount: 文章查看/阅读数量
    • AdWeight: 广告概率权重 (用于控制广告显示频率)
  4. 分类与作者

    • Tags: 文章标签列表 (默认为空列表)
    • Author: 作者信息 (VmUserInfo 类型,可选)
    • From: 文章来源/出处 (可选)
  5. 时间信息

    • CreateTime: 文章发表时间 (自动转换为本地时间)
    • LastUpdateTime: 文章最后修改时间 (自动转换为本地时间)

特点

  1. 使用了 C# 11 的 required 修饰符确保必要属性在初始化时必须赋值
  2. 时间属性会自动转换为本地时间
  3. 集合类型属性都有默认值(空列表),避免 null 引用
  4. 可选属性使用可为 null 的类型(加?号)

这个类主要用于在 API 响应中返回文章数据,包含了文章的完整信息和相关元数据,适合用于前端展示文章详情页面。

评论加载中...