2026-04-14 17:30:20 +08:00

363 lines
7.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 AvailabilityStatus Status { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
/// <summary>
/// 占位符列表
/// </summary>
public List<PlaceholderOutput> Placeholders { get; set; } = new();
}
/// <summary>
/// 证书模板简单输出(用于发放证书时的模板选择)
/// </summary>
public class CertificateTemplateSimpleOutput
{
/// <summary>
/// 模板ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 模板类型
/// </summary>
public string TemplateType { get; set; }
/// <summary>
/// 版本号
/// </summary>
public int Version { get; set; }
/// <summary>
/// 宽度
/// </summary>
public int Width { get; set; }
/// <summary>
/// 高度
/// </summary>
public int Height { get; set; }
/// <summary>
/// 是否激活
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
/// <summary>
/// 显示名称
/// </summary>
public string DisplayName => $"模板 {Id} (v{Version}) - {TemplateType}";
}