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