using System.ComponentModel.DataAnnotations;
using System.Text.Json;
using Tiku.Application.Catalog;
using Tiku.Domain.Catalog;
using Tiku.Domain.Common;
using Tiku.Domain.Content;
namespace Tiku.Api.Contracts;
///
/// 创建分类节点请求 DTO。
///
public sealed class CreateTaxonomyNodeDto
{
///
/// 父节点 ID。
///
public Guid? ParentId { get; set; }
///
/// 父级来源。
///
public QuestionSource? ParentSource { get; set; }
///
/// 节点Type。
///
[Required]
public TaxonomyNodeType NodeType { get; set; }
///
/// 编码。
///
[Required, StringLength(100)]
public string Code { get; set; } = string.Empty;
///
/// 名称。
///
[Required, StringLength(300)]
public string Name { get; set; } = string.Empty;
///
/// 排序值。
///
public int SortOrder { get; set; }
///
/// 扩展元数据。
///
public JsonElement Metadata { get; set; } = JsonDefaults.Object();
public CreateTaxonomyNodeCommand ToCommand() => new(
ParentId,
ParentSource,
NodeType,
Code,
Name,
SortOrder,
Metadata);
}