using TakeoutSaaS.Domain.Finance.Models;

namespace TakeoutSaaS.Domain.Finance.Services;

/// <summary>
/// 经营报表导出服务契约。
/// </summary>
public interface IFinanceBusinessReportExportService
{
    /// <summary>
    /// 导出单条报表 PDF。
    /// </summary>
    Task<byte[]> ExportSinglePdfAsync(
        FinanceBusinessReportDetailSnapshot detail,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 导出单条报表 Excel。
    /// </summary>
    Task<byte[]> ExportSingleExcelAsync(
        FinanceBusinessReportDetailSnapshot detail,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 导出批量报表 PDF。
    /// </summary>
    Task<byte[]> ExportBatchPdfAsync(
        IReadOnlyList<FinanceBusinessReportDetailSnapshot> details,
        CancellationToken cancellationToken = default);

    /// <summary>
    /// 导出批量报表 Excel。
    /// </summary>
    Task<byte[]> ExportBatchExcelAsync(
        IReadOnlyList<FinanceBusinessReportDetailSnapshot> details,
        CancellationToken cancellationToken = default);
}

