using Microsoft.AspNetCore.Http; using Fitness_core_BE.Models.IOs; namespace Fitness_core_BE.Interfaces.Services { public interface IClientService { Task GetAllCustomers(object payload, HttpContext httpContext); Task GetClientList(object payload, HttpContext httpContext); Task GetClientById(object payload, HttpContext httpContext); Task UpdateGymProfile( UpdateGymProfileRequest request, HttpContext httpContext); // Gym-specific Terms & Conditions authoring (client portal). Task GetMyGymTerms(object payload, HttpContext httpContext); Task PublishGymTerms(object payload, HttpContext httpContext); Task UploadGymLogo(IFormFile logo, HttpContext httpContext); Task GetGymLogo(HttpContext httpContext); Task SendContactOtp(object payload, HttpContext httpContext); Task VerifyContactOtp(object payload, HttpContext httpContext); Task GetCustomerFullDetails(object payload, HttpContext httpContext); Task GetCustomerMedical(object payload, HttpContext httpContext); Task GetCustomerDetailsById(object payload, HttpContext httpContext); Task CreateCustomerWithPlans(object payload, HttpContext httpContext); Task UpdateCustomerByClient(object payload, HttpContext httpContext); Task GetCustomersByClientId(object payload, HttpContext httpContext); // "Parent" path for a plan-less customer: starts a brand new subscription with them // as primary. Mirrors CreateCustomerWithPlans' plan-assignment step, callable standalone // for a customer who was created without a plan. Task AssignPlanToExistingCustomer(Guid customerId, object payload, HttpContext httpContext); // Switches a customer with an existing Individual-scope subscription onto a different // Individual-scope plan: deactivates the old subscription and starts a fresh one. Task ChangeCustomerMembershipPlan(Guid customerId, Guid newCustomerPlanId, HttpContext httpContext); Task UnassignCustomerMembership(Guid customerId, HttpContext httpContext); Task GetCustomerPlansByClientId(object payload, HttpContext httpContext); Task RegisterClient(object payload, HttpContext httpContext); Task GetPackageList(object payload, HttpContext httpContext); Task DeleteCustomerByClient(object payload, HttpContext httpContext); Task ClientLogOut(object payload, HttpContext httpContext); Task GetWorkoutPlansByClientId(object payload, HttpContext httpContext); Task GetWorkoutPlanById(object payload, HttpContext httpContext); Task GetMealPlansByClientId(object payload, HttpContext httpContext); Task GetMealPlanById(object payload, HttpContext httpContext); Task GetAllCustomerPlans(object payload, HttpContext httpContext); Task GetCustomerPlanById(object payload, HttpContext httpContext); Task GetCardDetails(object payload, HttpContext httpContext); // Cards a specific member has saved with this gym (used to offer the auto-charge toggle). Task GetCustomerCards(object payload, HttpContext httpContext); // Auto-lock-after-non-payment settings (req 7) — client-configurable. Task GetLockPolicy(HttpContext httpContext); Task UpdateLockPolicy(int? lockAfterDaysOverdue, HttpContext httpContext); } }