2026-03-04 12:13:49 +08:00

157 lines
3.5 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;
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();
}