29 lines
1.4 KiB
C#
29 lines
1.4 KiB
C#
using Microsoft.AspNetCore.Http;
|
|
|
|
namespace Fitness_core_BE.Interfaces.Services
|
|
{
|
|
public interface IBookingService
|
|
{
|
|
/// <summary>Logged-in member books a session against their own plan's allowance.</summary>
|
|
Task<object> CreateMemberBooking(object payload, HttpContext httpContext);
|
|
|
|
/// <summary>No membership at all -- pay-per-session, identity proof is the returned OTP.</summary>
|
|
Task<object> CreateGuestBooking(object payload, HttpContext httpContext);
|
|
|
|
/// <summary>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.</summary>
|
|
Task<object?> GetBookingView(object payload);
|
|
|
|
/// <summary>Staff records a guest booking's payment (cash/bank/at-venue) after the fact.</summary>
|
|
Task<object> MarkGuestBookingPaid(object payload, HttpContext httpContext);
|
|
|
|
/// <summary>Staff/door check-in: verifies the OTP and marks the booking checked in.</summary>
|
|
Task<object> CheckInBooking(object payload, HttpContext httpContext);
|
|
|
|
Task<object> CancelBooking(object payload, HttpContext httpContext);
|
|
Task<object> GetMyBookings(object payload, HttpContext httpContext);
|
|
Task<object> GetSessionBookings(object payload, HttpContext httpContext);
|
|
}
|
|
}
|