using Fitness_core_BE.Models; namespace Fitness_core_BE.Interfaces { public interface ICustomerPlanRepository { Task> GetAllCustomerPlans(bool includeInactive = false, Guid? clientId = null); Task GetCustomerPlanById(Guid customerPlanId); Task CreateCustomerPlan(CustomerPlan customerPlan); Task UpdateCustomerPlan(CustomerPlan customerPlan); // Status-only toggle. Deliberately separate from UpdateCustomerPlan: reactivating a // plan must not re-run the whole cross-field configuration validation, so an older // plan whose config predates a rule can still be switched back on. Task SetCustomerPlanActive(Guid customerPlanId, Guid clientId, bool isActive); Task DeleteCustomerPlan(Guid customerPlanId, bool softDelete = true); } }