using Transversal.Models;

namespace Transversal.Interfaces
{
    /// <summary>
    /// Define el contrato para un servicio generador de PDFs a partir de contenido HTML.
    /// </summary>
    public interface IPdfGeneratorService
    {
        /// <summary>
        /// Genera un documento PDF a partir de una cadena HTML.
        /// </summary>
        /// <param name="htmlContent">
        /// Contenido HTML completo (incluyendo etiquetas <html>, <head>, <body>, etc.) que se desea convertir a PDF.
        /// </param>
        /// <param name="options">
        /// Opcional: configuración personalizada para el documento PDF (tamaño de papel, orientación, márgenes, encabezados, pies de página, etc.).
        /// Si se deja en null, se aplica la configuración por defecto (A4, vertical, sin márgenes personalizados).
        /// </param>
        /// <returns>
        /// Un array de bytes que representa el documento PDF generado. 
        /// Puede ser utilizado para guardar en disco, devolver en una API como FileContentResult, etc.
        /// </returns>
        Task<byte[]> GeneratePdfFromHtmlAsync(string htmlContent, PdfGenerationOptions options = null);
    }
}
