using Microsoft.AspNetCore.Identity; namespace line_gestao_api.Services; public class PortugueseIdentityErrorDescriber : IdentityErrorDescriber { public override IdentityError DefaultError() => NewError(nameof(DefaultError), "Ocorreu uma falha desconhecida."); public override IdentityError ConcurrencyFailure() => NewError(nameof(ConcurrencyFailure), "Falha de concorrência. O registro foi alterado por outro processo."); public override IdentityError PasswordMismatch() => NewError(nameof(PasswordMismatch), "Senha incorreta."); public override IdentityError InvalidToken() => NewError(nameof(InvalidToken), "Token inválido."); public override IdentityError LoginAlreadyAssociated() => NewError(nameof(LoginAlreadyAssociated), "Este login já está associado a outra conta."); public override IdentityError InvalidUserName(string? userName) => NewError(nameof(InvalidUserName), $"Nome de usuário '{userName}' é inválido. Use apenas letras e números."); public override IdentityError InvalidEmail(string? email) => NewError(nameof(InvalidEmail), $"E-mail '{email}' é inválido."); public override IdentityError DuplicateUserName(string userName) => NewError(nameof(DuplicateUserName), $"O nome de usuário '{userName}' já está em uso."); public override IdentityError DuplicateEmail(string email) => NewError(nameof(DuplicateEmail), $"O e-mail '{email}' já está em uso."); public override IdentityError InvalidRoleName(string? role) => NewError(nameof(InvalidRoleName), $"O nome da permissão '{role}' é inválido."); public override IdentityError DuplicateRoleName(string role) => NewError(nameof(DuplicateRoleName), $"A permissão '{role}' já existe."); public override IdentityError UserAlreadyHasPassword() => NewError(nameof(UserAlreadyHasPassword), "Este usuário já possui senha definida."); public override IdentityError UserLockoutNotEnabled() => NewError(nameof(UserLockoutNotEnabled), "Bloqueio não está habilitado para este usuário."); public override IdentityError UserAlreadyInRole(string role) => NewError(nameof(UserAlreadyInRole), $"O usuário já possui a permissão '{role}'."); public override IdentityError UserNotInRole(string role) => NewError(nameof(UserNotInRole), $"O usuário não possui a permissão '{role}'."); public override IdentityError PasswordTooShort(int length) => NewError(nameof(PasswordTooShort), $"A senha deve ter pelo menos {length} caracteres."); public override IdentityError PasswordRequiresNonAlphanumeric() => NewError(nameof(PasswordRequiresNonAlphanumeric), "A senha deve conter pelo menos um caractere especial."); public override IdentityError PasswordRequiresDigit() => NewError(nameof(PasswordRequiresDigit), "A senha deve conter pelo menos um número ('0'-'9')."); public override IdentityError PasswordRequiresLower() => NewError(nameof(PasswordRequiresLower), "A senha deve conter pelo menos uma letra minúscula ('a'-'z')."); public override IdentityError PasswordRequiresUpper() => NewError(nameof(PasswordRequiresUpper), "A senha deve conter pelo menos uma letra maiúscula ('A'-'Z')."); public override IdentityError PasswordRequiresUniqueChars(int uniqueChars) => NewError(nameof(PasswordRequiresUniqueChars), $"A senha deve usar pelo menos {uniqueChars} caracteres diferentes."); public override IdentityError RecoveryCodeRedemptionFailed() => NewError(nameof(RecoveryCodeRedemptionFailed), "Código de recuperação inválido."); private static IdentityError NewError(string code, string description) => new() { Code = code, Description = description }; }