using Fitness_core_BE.Models.Receipt;
namespace Fitness_core_BE.Interfaces.Services
{
public interface IReceiptService
{
/// Gathers member/plan/gym/amount data for a member invoice.
/// When is set, throws if the invoice isn't that gym's.
Task BuildForInvoiceAsync(Guid customerInvoiceId, decimal? paymentAmount = null, Guid? requireClientId = null);
/// Gathers gym/amount data for a platform (HexaFitness -> gym) invoice.
/// When is set, throws if the invoice isn't that gym's.
Task BuildForClientInvoiceAsync(Guid clientInvoiceId, decimal? paymentAmount = null, Guid? requireClientId = null);
byte[] GeneratePdf(ReceiptModel model);
/// Best-effort: emails the receipt PDF and texts the member. Never throws.
Task SendReceiptAsync(ReceiptModel model);
}
}