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