using FrameworkDAL.DTO.EIPConversation;
using System.Threading;
using System.Threading.Tasks;
namespace FrameworkBLL.EIPConversation.EIPHandlers.EIPOTP
{
public interface IEIPOtpService
{
/// True if a still-pending, unexpired OTP already exists for this
/// (tenant, user, capability) — signals the capability engine that the next
/// inbound message should be treated as a verification attempt, not a fresh trigger.
Task HasPendingOtpAsync(
string capabilityCode,
EIPExecutionContextDTO context,
CancellationToken cancellationToken);
Task GenerateOtpAsync(
string capabilityCode,
EIPExecutionContextDTO context,
CancellationToken cancellationToken);
Task VerifyOtpAsync(
string capabilityCode,
string otp,
EIPExecutionContextDTO context,
CancellationToken cancellationToken);
}
}