using TakeoutSaaS.Domain.Merchants.Entities;
using TakeoutSaaS.Domain.Stores.Entities;

namespace TakeoutSaaS.Domain.Merchants.Services;

/// <summary>
/// 商户导出服务接口。
/// </summary>
public interface IMerchantExportService
{
    /// <summary>
    /// 导出为 PDF。
    /// </summary>
    /// <param name="merchant">商户主体。</param>
    /// <param name="tenantName">租户名称。</param>
    /// <param name="stores">门店列表。</param>
    /// <param name="auditLogs">审核历史。</param>
    /// <param name="cancellationToken">取消标记。</param>
    /// <returns>PDF 字节数组。</returns>
    Task<byte[]> ExportToPdfAsync(
        Merchant merchant,
        string? tenantName,
        IReadOnlyList<Store> stores,
        IReadOnlyList<MerchantAuditLog> auditLogs,
        CancellationToken cancellationToken = default);
}
