mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 06:03:12 +00:00
71 lines
1.8 KiB
C#
71 lines
1.8 KiB
C#
namespace SeaHaven.Services.DTOs;
|
|
|
|
/// <summary>A freshly issued invite. The raw token is never persisted and never printed.</summary>
|
|
public sealed class IssuedTeamMemberInvite
|
|
{
|
|
public IssuedTeamMemberInvite(string token, DateTime expiresAt)
|
|
{
|
|
Token = token;
|
|
ExpiresAt = expiresAt;
|
|
}
|
|
|
|
public string Token { get; }
|
|
public DateTime ExpiresAt { get; }
|
|
|
|
public override string ToString() => $"IssuedTeamMemberInvite {{ ExpiresAt = {ExpiresAt:O} }}";
|
|
}
|
|
|
|
public sealed class TeamMemberInviteResendOutcomeDTO
|
|
{
|
|
public bool Success { get; init; }
|
|
public string? Error { get; init; }
|
|
}
|
|
|
|
public enum TeamMemberRegistrationStatus
|
|
{
|
|
Ok,
|
|
InvalidInvite,
|
|
CodeIncorrect,
|
|
CodeExpired,
|
|
CodeLocked,
|
|
ResendTooSoon,
|
|
ResendLimitReached,
|
|
CodeDeliveryFailed,
|
|
EmailNotConfirmed,
|
|
PasswordRejected,
|
|
InvalidPhone
|
|
}
|
|
|
|
public sealed class TeamMemberInviteDetailsDTO
|
|
{
|
|
public required string Name { get; init; }
|
|
public required string Role { get; init; }
|
|
public string? Email { get; init; }
|
|
public string? Phone { get; init; }
|
|
}
|
|
|
|
public sealed class TeamMemberRegistrationOutcomeDTO
|
|
{
|
|
public TeamMemberRegistrationStatus Status { get; init; }
|
|
public TeamMemberInviteDetailsDTO? Details { get; init; }
|
|
public LoginResultDTO? Session { get; init; }
|
|
public int? RetryAfterSeconds { get; init; }
|
|
}
|
|
|
|
public sealed class TeamMemberInviteTokenRequestDTO
|
|
{
|
|
public string? Token { get; init; }
|
|
}
|
|
|
|
public sealed class VerifyTeamMemberInviteCodeRequestDTO
|
|
{
|
|
public string? Token { get; init; }
|
|
public string? Code { get; init; }
|
|
}
|
|
|
|
public sealed class CompleteTeamMemberRegistrationRequestDTO
|
|
{
|
|
public string? Token { get; init; }
|
|
public string? Password { get; init; }
|
|
public string? Phone { get; init; }
|
|
}
|