using FluentValidation; using Nashel.Modules.Identity.Application.Commands; using Nashel.Modules.Identity.Domain.Enums; namespace Nashel.Modules.Identity.Application.Validators; public class RegisterUserCommandValidator : AbstractValidator { 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); } }