using FrameworkDAL.DTO.EIPConversation;
using GB5Shared.DTO.Framework.Login;
using System.Threading;
using System.Threading.Tasks;
namespace FrameworkDAL.CustomCode.EIPConversation.EIPOtp
{
public interface IEIPOtpDAL
{
/// Supersedes any existing pending record for this user+capability, then
/// inserts a new pending OTP record. Returns the new OTPRECORDID.
Task IssueAsync(
int tenantId, string userIdentifier, string capabilityCode, string otpHash,
System.DateTime expiresOn, LoginDTO loginDTO, CancellationToken ct = default);
Task GetPendingAsync(
int tenantId, string userIdentifier, string capabilityCode,
LoginDTO loginDTO, CancellationToken ct = default);
Task MarkVerifiedAsync(int otpRecordId, LoginDTO loginDTO, CancellationToken ct = default);
Task IncrementAttemptAsync(
int otpRecordId, int maxAttempts, LoginDTO loginDTO, CancellationToken ct = default);
}
}