namespace Azaion.Common.Requests;
/// AZ-534 — body for POST /users/me/mfa/enroll.
public class MfaEnrollRequest
{
public string Password { get; set; } = null!;
}
/// AZ-534 — response of /enroll (also surfaces recovery codes ONCE; they are
/// hashed at rest and unrecoverable after this response).
public class MfaEnrollResponse
{
public string Secret { get; set; } = null!;
public string OtpAuthUrl { get; set; } = null!;
public string QrPngBase64 { get; set; } = null!;
public string[] RecoveryCodes { get; set; } = [];
}
public class MfaConfirmRequest
{
public string Code { get; set; } = null!;
}
public class MfaDisableRequest
{
public string Password { get; set; } = null!;
public string Code { get; set; } = null!;
}
/// AZ-534 AC-3 — response of step-1 /login when the user has MFA enabled.
/// The mfa_token is a short-lived JWT carried into POST /login/mfa.
public class MfaRequiredResponse
{
public bool MfaRequired { get; set; } = true;
public string MfaToken { get; set; } = null!;
public int ExpiresIn { get; set; }
}
public class MfaLoginRequest
{
public string MfaToken { get; set; } = null!;
public string Code { get; set; } = null!;
}