157 lines
3.5 KiB
C#
Raw Normal View History

2026-03-04 12:13:49 +08:00
using System.ComponentModel.DataAnnotations;
namespace YD_Event.Application.Certificate.Dtos;
/// <summary>
/// 生成PDF证书输入
/// </summary>
public class GeneratePdfCertificateInput
{
/// <summary>
/// 证书ID
/// </summary>
[Required(ErrorMessage = "证书ID不能为空")]
public long CertificateId { get; set; }
/// <summary>
/// 模板ID(可选,默认使用证书关联的模板)
/// </summary>
public long? TemplateId { get; set; }
/// <summary>
/// 占位符数据
/// </summary>
[Required(ErrorMessage = "占位符数据不能为空")]
public Dictionary<string, string> Data { get; set; }
/// <summary>
/// 是否生成二维码
/// </summary>
public bool GenerateQRCode { get; set; } = true;
/// <summary>
/// 二维码大小(像素)
/// </summary>
public int QRCodeSize { get; set; } = 150;
}
/// <summary>
/// 批量生成PDF证书输入
/// </summary>
public class BatchGeneratePdfCertificateInput
{
/// <summary>
/// 证书ID
/// </summary>
[Required(ErrorMessage = "证书ID不能为空")]
public long CertificateId { get; set; }
/// <summary>
/// 模板ID(可选)
/// </summary>
public long? TemplateId { get; set; }
/// <summary>
/// 证书数据列表
/// </summary>
[Required(ErrorMessage = "证书数据列表不能为空")]
public List<Dictionary<string, string>> DataList { get; set; }
/// <summary>
/// 是否生成二维码
/// </summary>
public bool GenerateQRCode { get; set; } = true;
/// <summary>
/// 二维码大小(像素)
/// </summary>
public int QRCodeSize { get; set; } = 150;
}
/// <summary>
/// PDF证书生成结果
/// </summary>
public class PdfCertificateGenerationResult
{
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 错误消息
/// </summary>
public string ErrorMessage { get; set; }
/// <summary>
/// 生成时间
/// </summary>
public DateTime GeneratedTime { get; set; }
/// <summary>
/// 生成耗时(毫秒)
/// </summary>
public long GenerationTimeMs { get; set; }
/// <summary>
/// PDF文件URL
/// </summary>
public string PdfUrl { get; set; }
/// <summary>
/// 二维码图片URL
/// </summary>
public string QRCodeUrl { get; set; }
/// <summary>
/// 验证URL
/// </summary>
public string VerificationUrl { get; set; }
/// <summary>
/// 警告信息
/// </summary>
public List<string> Warnings { get; set; } = new();
}
/// <summary>
/// 批量PDF证书生成结果
/// </summary>
public class BatchPdfCertificateGenerationResult
{
/// <summary>
/// 开始时间
/// </summary>
public DateTime StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime EndTime { get; set; }
/// <summary>
/// 总数
/// </summary>
public int TotalCount { get; set; }
/// <summary>
/// 成功数量
/// </summary>
public int SuccessCount => SuccessResults.Count;
/// <summary>
/// 失败数量
/// </summary>
public int FailedCount => FailedResults.Count;
/// <summary>
/// 成功结果列表
/// </summary>
public List<PdfCertificateGenerationResult> SuccessResults { get; set; } = new();
/// <summary>
/// 失败结果列表
/// </summary>
public List<PdfCertificateGenerationResult> FailedResults { get; set; } = new();
}