# Bug #002 — ProductInput validator MaximumLength(200) vs StringLength(500) **Severity:** Low (UX, consistency) **Component:** `Application/Catalog/CatalogDtos.cs` (ProductInput) + `Api/Infrastructure/Validation/Validators.cs` **Found:** Sprint 23, 2026-06-08 ## Воспроизведение - ProductInput.Name имеет `[StringLength(500)]` annotation. - БД-колонка `products.Name` имеет `HasMaxLength(500)`. - ProductInputValidator (FluentValidation) кидает 400 при Name > **200** символов. Пользователь читает аннотацию или DDL и ожидает 500 символов; на 201-чарном имени получает ошибку с упоминанием 200 — расхождение. ## Воспроизведение ```bash # 201 символов в name → 400 «The length of 'Name' must be 200 characters or fewer» curl -X POST … -d '{"name":"Y...Y(500)","prices":[…]}' ``` ## Ожидание Либо validator говорит 500 (совпадает с schema), либо schema режется до 200. Sprint 23 фикс: validator → 500 (расширяем — чем меньше data loss, тем лучше). ## Фикс ```diff - RuleFor(x => x.Name).NotEmpty().WithMessage("Название обязательно.") - .MaximumLength(200); + RuleFor(x => x.Name).NotEmpty().WithMessage("Название обязательно.") + .MaximumLength(500); ``` То же для `CounterpartyInputValidator.Name` (200 → 255 — Counterparty.Name имеет HasMaxLength(255)). ## Retest После фикса: POST с 201/499 символов → 201. POST с 501 символом → 400.