using EnvelopeGenerator.ReceiverUI.Client.Models;
using EnvelopeGenerator.ReceiverUI.Client.Services.Base;
namespace EnvelopeGenerator.ReceiverUI.Client.Services;
///
/// Kommuniziert mit dem ReceiverAuthController der API.
///
/// Drei Methoden — eine pro Endpunkt:
/// 1. GetStatusAsync → GET /api/receiverauth/{key}/status
/// 2. SubmitAccessCodeAsync → POST /api/receiverauth/{key}/access-code
/// 3. SubmitTfaCodeAsync → POST /api/receiverauth/{key}/tfa
///
public interface IReceiverAuthService
{
/// Prüft den aktuellen Status des Empfänger-Flows
Task> GetStatusAsync(string key, CancellationToken ct = default);
/// Sendet den Zugangscode zur Prüfung
Task> SubmitAccessCodeAsync(
string key, string accessCode, bool preferSms, CancellationToken ct = default);
/// Sendet den TFA-Code (SMS oder Authenticator) zur Prüfung
Task> SubmitTfaCodeAsync(
string key, string code, string type, CancellationToken ct = default);
}