using Baya.Application.Models.Booking;
using Baya.Application.Models.Common;
using Mediator;

namespace Baya.Application.Features.Bookings.Commands.CancelSession;

/// <summary>Cancels a single un-started session mid-engagement: resolves + snapshots the applicable policy,
/// computes the refundable amount for that session's share of gross, and marks the session <c>cancelled</c>.
/// A session already <c>in_progress</c>/<c>completed</c> is not refundable. No refund ledger is posted (b11).
/// The session id comes from the route.</summary>
public record CancelSessionCommand(string Reason, long SessionId = 0)
    : IRequest<OperationResult<CancellationResultDto>>;
