using Microsoft.AspNetCore.Http; namespace Fitness_core_BE.Interfaces.Services { public interface IBookingService { /// Logged-in member books a session against their own plan's allowance. Task CreateMemberBooking(object payload, HttpContext httpContext); /// No membership at all -- pay-per-session, identity proof is the returned OTP. Task CreateGuestBooking(object payload, HttpContext httpContext); /// Renders the public, unauthenticated confirmation page a booking's ShareUrl /// points to -- the "copy the link and share it" receipt. Returns null if not found, so /// the controller can render a 404 page instead of a JSON error for a browser hit. Task GetBookingView(object payload); /// Staff records a guest booking's payment (cash/bank/at-venue) after the fact. Task MarkGuestBookingPaid(object payload, HttpContext httpContext); /// Staff/door check-in: verifies the OTP and marks the booking checked in. Task CheckInBooking(object payload, HttpContext httpContext); Task CancelBooking(object payload, HttpContext httpContext); Task GetMyBookings(object payload, HttpContext httpContext); Task GetSessionBookings(object payload, HttpContext httpContext); } }