| | | 1 | | namespace ArturRios.Heimdall.Command.Services; |
| | | 2 | | |
| | | 3 | | /// <summary> |
| | | 4 | | /// What UC-12 hands to the background: the address and scope a caller asked about, exactly as |
| | | 5 | | /// they asked. Nothing about the answer — whether anybody holds the address — is known yet. |
| | | 6 | | /// </summary> |
| | 1175 | 7 | | public sealed record PasswordRecoveryRequest(string Email, Guid? ScopeId); |
| | | 8 | | |
| | | 9 | | /// <summary> |
| | | 10 | | /// Takes UC-12's work off the request path (AF-12a). <see cref="PasswordRecoveryProcessor" /> |
| | | 11 | | /// does it later, outside any request, so the response cannot be timed to learn whether the |
| | | 12 | | /// address is registered. |
| | | 13 | | /// </summary> |
| | | 14 | | public interface IPasswordRecoveryQueue |
| | | 15 | | { |
| | | 16 | | /// <summary> |
| | | 17 | | /// Queues the request without waiting. Returns <c>false</c> when the queue is full and the |
| | | 18 | | /// request was dropped; the caller's answer must not change either way. |
| | | 19 | | /// </summary> |
| | | 20 | | bool TryEnqueue(PasswordRecoveryRequest request); |
| | | 21 | | } |