32 lines
1.4 KiB
C#
32 lines
1.4 KiB
C#
using FluentValidation;
|
||
using Nashel.Modules.Identity.Application.Commands;
|
||
using Nashel.Modules.Identity.Domain.Enums;
|
||
|
||
namespace Nashel.Modules.Identity.Application.Validators;
|
||
|
||
public class RegisterUserCommandValidator : AbstractValidator<RegisterUserCommand>
|
||
{
|
||
public RegisterUserCommandValidator()
|
||
{
|
||
RuleFor(x => x.Phone)
|
||
.NotEmpty().WithMessage("Телефон обязателен")
|
||
.Matches(@"^\+\d{11,15}$").WithMessage("Формат телефона должен быть E.164 (начинаться с +, 11-15 цифр)");
|
||
|
||
RuleFor(x => x.Password)
|
||
.NotEmpty().WithMessage("Пароль обязателен")
|
||
.MinimumLength(6).WithMessage("Пароль должен быть не менее 6 символов");
|
||
|
||
RuleFor(x => x.FirstName)
|
||
.NotEmpty().WithMessage("Имя обязательно")
|
||
.MinimumLength(2).WithMessage("Имя должно содержать минимум 2 символа");
|
||
|
||
RuleFor(x => x.LastName)
|
||
.NotEmpty().WithMessage("Фамилия обязательна")
|
||
.MinimumLength(2).WithMessage("Фамилия должна содержать минимум 2 символа");
|
||
|
||
RuleFor(x => x.CompanyName)
|
||
.NotEmpty().WithMessage("Название компании обязательно для юридических лиц")
|
||
.When(x => x.Role == Role.Company);
|
||
}
|
||
}
|