using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using TMSDAL.DTO.CertRenewalAlert; namespace TMSDAL.CustomCode.Certificate { public interface ITrainingCertificateDAL { Task GetCertificate(int TrainingCertificateId, LoginDTO loginDTO); Task GetCertificateListByEmployee( LoginDTO loginDTO); Task SaveCertificate(TrainingCertificateDTO dto, LoginDTO loginDTO); Task RevokeCertificate(int TrainingCertificateId, string reason, int revokedById, LoginDTO loginDTO); Task LogCertRenewalAlert(CertRenewalAlertDTO dto, LoginDTO loginDTO); Task GetSelectList(CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct); Task UpdateCertificate(TrainingCertificateDTO dto, LoginDTO loginDTO); Task SaveCertificateBulk(IEnumerable records, LoginDTO loginDTO); Task UpdateCertificateBulk(IEnumerable records, LoginDTO loginDTO); Task MarkCertRenewed(int trainingCertificateId, LoginDTO loginDTO); // Public, cross-tenant lookup — mirrors FlsRespondentDAL.GetByTokenAsync's precedent. // Caller passes a fresh LoginDTO { ClientId = 0, UserId = -1 }, not the real tenant login. Task GetCertificateByVerificationToken(string verificationToken, LoginDTO loginDTO, CancellationToken ct); Task SetVerificationTokenAndSignatory(int trainingCertificateId, string verificationToken, int signatoryId, LoginDTO loginDTO, CancellationToken ct); Task SaveCertificateSignature(TrainingCertificateSignatureDTO dto, LoginDTO loginDTO, CancellationToken ct); Task GetAttachmentIdByCertificate(int trainingCertificateId, LoginDTO loginDTO, CancellationToken ct); Task GetAttachmentStorageInfo(int attachmentId, LoginDTO loginDTO, CancellationToken ct); } }