package br.gov.sigefp.common.service;

import java.util.List;
import java.util.Map;

/**
 * Serviço genérico para geração de relatórios.
 */
public interface ReportService {

    /**
     * Gera um relatório em formato Excel (XLSX).
     *
     * @param data      Lista de dados a serem exportados.
     * @param headers   Mapa de chaves (propriedades) e títulos das colunas.
     * @param sheetName Nome da aba na planilha.
     * @return Byte array do arquivo gerado.
     */
    byte[] generateExcel(List<?> data, Map<String, String> headers, String sheetName);

    /**
     * Gera um relatório em formato PDF.
     *
     * @param data    Lista de dados a serem exportados.
     * @param headers Mapa de chaves (propriedades) e títulos das colunas.
     * @param title   Título do relatório.
     * @return Byte array do arquivo gerado.
     */
    byte[] generatePdf(List<?> data, Map<String, String> headers, String title);
}
