using Microsoft.AspNetCore.Http; namespace Fitness_core_BE.Interfaces.Services { public interface IPaymentService { Task CreateCustomerPayment(object payload, HttpContext httpContext); Task CreateClientPayment(object payload, HttpContext httpContext); Task GetPaymentById(object payload, HttpContext httpContext); Task GetPaymentsByCustomerInvoice(object payload, HttpContext httpContext); Task GetPaymentsByClientInvoice(object payload, HttpContext httpContext); Task ApprovePayment(object payload, HttpContext httpContext); Task RecordSubscriptionPayment(object payload, HttpContext httpContext); Task GetSubscriptionPayments(object payload, HttpContext httpContext); // "Charge now": owner-triggered attempt against the member's consented auto-charge card. Task AttemptAutoCharge(Guid customerInvoiceId, HttpContext httpContext); // Emails/texts the member a link to pay the invoice online themselves. Task SendPaymentLink(Guid customerInvoiceId, HttpContext httpContext); // Public pay-by-link surface (token proves authorization; no logged-in session). Task GetInvoiceByPaymentToken(string token); Task ChargeInvoiceByPaymentToken(string token, object payload); } }