using PowderCoating.Application.DTOs.Accounting; using PowderCoating.Application.DTOs.Company; using PowderCoating.Application.DTOs.GiftCertificate; using PowderCoating.Application.DTOs.Invoice; using PowderCoating.Application.DTOs.PurchaseOrder; using PowderCoating.Application.DTOs.Quote; using PowderCoating.Core.Entities; namespace PowderCoating.Application.Interfaces; public interface IPdfService { Task GenerateQuotePdfAsync( QuoteDto quoteDto, byte[]? companyLogo, string? companyLogoContentType, CompanyInfoDto companyInfo, QuoteTemplateSettingsDto? template = null, byte[]? preparedByPhoto = null); Task GenerateInvoicePdfAsync( InvoiceDto invoiceDto, byte[]? companyLogo, string? companyLogoContentType, CompanyInfoDto companyInfo, QuoteTemplateSettingsDto? template = null); Task GeneratePurchaseOrderPdfAsync( PurchaseOrderDto po, byte[]? companyLogo, string? companyLogoContentType, CompanyInfoDto companyInfo); Task GenerateCatalogPdfAsync( IEnumerable> itemsByCategory, string companyName, byte[]? companyLogo, string? companyLogoContentType); Task GenerateProfitAndLossPdfAsync(ProfitAndLossDto dto); Task GenerateBalanceSheetPdfAsync(BalanceSheetDto dto); Task GenerateArAgingPdfAsync(ArAgingReportDto dto); Task GenerateSalesAndIncomePdfAsync(SalesIncomeReportDto dto); Task GenerateSalesTaxReportPdfAsync(SalesTaxReportDto dto); Task GenerateApAgingPdfAsync(ApAgingReportDto dto); Task GenerateTrialBalancePdfAsync(TrialBalanceDto dto); Task GenerateGiftCertificatePdfAsync( GiftCertificateDto cert, byte[]? companyLogo, string? companyLogoContentType, CompanyInfoDto companyInfo); }