317 lines
6.9 KiB
C#
Raw Normal View History

2026-03-04 12:13:49 +08:00
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Http;
namespace YD_Event.Application.Certificate.Dtos;
/// <summary>
/// 更新DOC模板输入
/// </summary>
public class UpdateDocTemplateInput
{
/// <summary>
/// 模板ID
/// </summary>
[Required(ErrorMessage = "模板ID不能为空")]
public long Id { get; set; }
/// <summary>
/// 版本号
/// </summary>
[Required(ErrorMessage = "版本号不能为空")]
public int Version { get; set; }
/// <summary>
/// DOC模板文件(可选)
/// </summary>
public IFormFile TemplateFile { get; set; }
/// <summary>
/// 像素宽度
/// </summary>
[Required(ErrorMessage = "宽度不能为空")]
[Range(100, 5000, ErrorMessage = "宽度必须在100-5000像素之间")]
public int Width { get; set; }
/// <summary>
/// 像素高度
/// </summary>
[Required(ErrorMessage = "高度不能为空")]
[Range(100, 5000, ErrorMessage = "高度必须在100-5000像素之间")]
public int Height { get; set; }
/// <summary>
/// 是否当前激活版本
/// </summary>
public bool IsActive { get; set; }
}
/// <summary>
/// 证书模板上传结果
/// </summary>
public class CertificateTemplateUploadResult
{
/// <summary>
/// 模板ID
/// </summary>
public long TemplateId { get; set; }
/// <summary>
/// 模板文件URL
/// </summary>
public string TemplateUrl { get; set; }
/// <summary>
/// 检测到的占位符列表
/// </summary>
public List<DetectedPlaceholderOutput> DetectedPlaceholders { get; set; } = new();
/// <summary>
/// 总占位符数量
/// </summary>
public int TotalPlaceholders { get; set; }
/// <summary>
/// 有效占位符数量
/// </summary>
public int ValidPlaceholders { get; set; }
}
/// <summary>
/// 检测占位符输入
/// </summary>
public class DetectPlaceholdersInput
{
/// <summary>
/// DOC模板文件
/// </summary>
[Required(ErrorMessage = "请选择DOC模板文件")]
public IFormFile TemplateFile { get; set; }
}
/// <summary>
/// 保存占位符配置输入
/// </summary>
public class SavePlaceholdersInput
{
/// <summary>
/// 模板ID
/// </summary>
[Required(ErrorMessage = "模板ID不能为空")]
public long TemplateId { get; set; }
/// <summary>
/// 占位符列表
/// </summary>
[Required(ErrorMessage = "占位符列表不能为空")]
public List<PlaceholderInput> Placeholders { get; set; }
}
/// <summary>
/// 占位符输入
/// </summary>
public class PlaceholderInput
{
/// <summary>
/// 占位符键名
/// </summary>
[Required(ErrorMessage = "占位符键名不能为空")]
[StringLength(50, ErrorMessage = "占位符键名长度不能超过50个字符")]
public string PlaceholderKey { get; set; }
/// <summary>
/// 显示名称
/// </summary>
[Required(ErrorMessage = "显示名称不能为空")]
[StringLength(100, ErrorMessage = "显示名称长度不能超过100个字符")]
public string DisplayName { get; set; }
/// <summary>
/// 占位符类型
/// </summary>
[Required(ErrorMessage = "占位符类型不能为空")]
public string PlaceholderType { get; set; }
/// <summary>
/// 默认值
/// </summary>
public string DefaultValue { get; set; }
/// <summary>
/// 是否必填
/// </summary>
public bool IsRequired { get; set; }
/// <summary>
/// 验证规则
/// </summary>
public string ValidationRule { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
}
/// <summary>
/// 占位符输出
/// </summary>
public class PlaceholderOutput
{
/// <summary>
/// ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 模板ID
/// </summary>
public long TemplateId { get; set; }
/// <summary>
/// 占位符键名
/// </summary>
public string PlaceholderKey { get; set; }
/// <summary>
/// 显示名称
/// </summary>
public string DisplayName { get; set; }
/// <summary>
/// 占位符类型
/// </summary>
public string PlaceholderType { get; set; }
/// <summary>
/// 默认值
/// </summary>
public string DefaultValue { get; set; }
/// <summary>
/// 是否必填
/// </summary>
public bool IsRequired { get; set; }
/// <summary>
/// 验证规则
/// </summary>
public string ValidationRule { get; set; }
/// <summary>
/// 描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// 排序
/// </summary>
public int Sort { get; set; }
}
/// <summary>
/// 检测到的占位符输出
/// </summary>
public class DetectedPlaceholderOutput
{
/// <summary>
/// 占位符键名
/// </summary>
public string PlaceholderKey { get; set; }
/// <summary>
/// 占位符类型
/// </summary>
public string PlaceholderType { get; set; }
/// <summary>
/// 是否有效
/// </summary>
public bool IsValid { get; set; }
/// <summary>
/// 验证消息
/// </summary>
public string ValidationMessage { get; set; }
/// <summary>
/// 建议的显示名称
/// </summary>
public string SuggestedDisplayName { get; set; }
}
/// <summary>
/// 占位符检测结果
/// </summary>
public class PlaceholderDetectionResult
{
/// <summary>
/// 检测到的占位符列表
/// </summary>
public List<DetectedPlaceholderOutput> Placeholders { get; set; } = new();
/// <summary>
/// 总数
/// </summary>
public int TotalCount => Placeholders.Count;
/// <summary>
/// 有效数量
/// </summary>
public int ValidCount { get; set; }
/// <summary>
/// 无效数量
/// </summary>
public int InvalidCount { get; set; }
}
/// <summary>
/// 证书模板输出
/// </summary>
public class CertificateTemplateOutput
{
/// <summary>
/// ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 版本号
/// </summary>
public int Version { get; set; }
/// <summary>
/// 模板类型
/// </summary>
public string TemplateType { get; set; }
/// <summary>
/// DOC模板URL
/// </summary>
public string DocxTemplateUrl { get; set; }
/// <summary>
/// 是否当前激活版本
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
/// <summary>
/// 占位符列表
/// </summary>
public List<PlaceholderOutput> Placeholders { get; set; } = new();
}