using GB5Shared.DTO.Framework.Login; using TMSDAL.DTO.CertRenewalAlert; namespace TMSBLL.Certificate { public interface ICertificatePdfPipeline { // Called after the TTRAININGCERTIFICATE row itself is already saved (dto.TrainingCertificateId // populated). Renders, stamps, signs, uploads, and persists verification/signature metadata. Task IssueAsync(TrainingCertificateDTO dto, LoginDTO loginDTO, CancellationToken ct); } }