39 lines
682 B
C#
39 lines
682 B
C#
namespace SequenceAuth.Lib;
|
|
|
|
public enum SequenceState
|
|
{
|
|
Initialized,
|
|
Active,
|
|
Rotated,
|
|
Compromised
|
|
}
|
|
|
|
public enum ValidationOutcome
|
|
{
|
|
Success,
|
|
SequenceNotFound,
|
|
LimitExceeded,
|
|
CompromisedSequenceDetected,
|
|
InternalError
|
|
}
|
|
|
|
public enum OptionState
|
|
{
|
|
Some,
|
|
None
|
|
}
|
|
|
|
public record Option<T>(T? Value, OptionState State)
|
|
{
|
|
public static Option<T> Some(T value) => new(value, OptionState.Some);
|
|
public static Option<T> None() => new(default, OptionState.None);
|
|
}
|
|
|
|
public enum StoreOutcome
|
|
{
|
|
Success,
|
|
Failure
|
|
}
|
|
|
|
public record SequenceData(string UserId, int RequestsRemaining, SequenceState State, string NextSequenceId);
|