mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-07-16 09:37:23 +00:00
Auth and Emails land together since Auth's registration/resend flows need Emails to exist first. Service.Auth's four services (Register, Login, Confirmation, Token) collapse into MediatR commands/queries in Features.Auth; TokenService stays as a slice-internal service since multiple handlers call it. Auth no longer references Emails directly — it sends SendRegistrationEmailCommand/SendResendConfirmationEmailCommand (defined in Shared.Application) which Features.Emails handles, so neither slice has a project reference on the other. Service.Emails' IEmailService becomes Features.Emails' IEmailDispatcher, simplified to take (firstName, email, token) instead of a full UserAccount since that's all it ever used. API.Specs' TestApiFactory/MockEmailService are updated to swap in the relocated interface. Also deletes Infrastructure.Repository now that Breweries, UserManagement, and Auth have all moved their repos out of it, and replaces the two now-dead docker-compose test services (repository.tests, service.auth.tests, both pointing at deleted Dockerfiles) with a single unit.tests service that runs every Features.*.Tests project via Dockerfile.tests.
39 lines
1.7 KiB
C#
39 lines
1.7 KiB
C#
namespace Features.Auth.Dtos;
|
|
|
|
/// <summary>
|
|
/// Payload returned to the client after a successful login or token refresh.
|
|
/// </summary>
|
|
/// <param name="UserAccountId">The unique identifier of the authenticated user account.</param>
|
|
/// <param name="Username">The username of the authenticated user account.</param>
|
|
/// <param name="RefreshToken">The newly issued refresh token used to obtain new access tokens.</param>
|
|
/// <param name="AccessToken">The newly issued JWT access token used to authorize subsequent requests.</param>
|
|
public record LoginPayload(
|
|
Guid UserAccountId,
|
|
string Username,
|
|
string RefreshToken,
|
|
string AccessToken
|
|
);
|
|
|
|
/// <summary>
|
|
/// Payload returned to the client after a successful registration.
|
|
/// </summary>
|
|
/// <param name="UserAccountId">The unique identifier of the newly created user account.</param>
|
|
/// <param name="Username">The username of the newly created user account.</param>
|
|
/// <param name="RefreshToken">The refresh token issued for the new account.</param>
|
|
/// <param name="AccessToken">The JWT access token issued for the new account.</param>
|
|
/// <param name="ConfirmationEmailSent">Whether a confirmation email was successfully sent to the new user.</param>
|
|
public record RegistrationPayload(
|
|
Guid UserAccountId,
|
|
string Username,
|
|
string RefreshToken,
|
|
string AccessToken,
|
|
bool ConfirmationEmailSent
|
|
);
|
|
|
|
/// <summary>
|
|
/// Payload returned to the client after a user account's email has been confirmed.
|
|
/// </summary>
|
|
/// <param name="UserAccountId">The unique identifier of the user account that was confirmed.</param>
|
|
/// <param name="ConfirmedDate">The date and time at which the account was confirmed.</param>
|
|
public record ConfirmationPayload(Guid UserAccountId, DateTime ConfirmedDate);
|