BUG-018: Декомпозиция

Admin Web (erp-admin/web)

CreatePage.tsx

  • Валидация имени: обязательное, 2–100 символов, trim пробелы
  • Валидация фамилии: аналогично
  • Валидация пароля: минимум 6 символов, показать подсказку под полем
  • Валидация телефона: маска +7XXXXXXXXXX, автоформатирование при вводе
  • Заменить текстовое поле “Торговые точки” (ввод UUID) на выпадающий список:
    • Загрузить список ТТ из GET /api/v1/admin/stores
    • Select с названиями ТТ
    • При выборе — сохранять store_id
    • Для менеджера: один select (ровно 1 ТТ)
    • Для кассира: один select (ровно 1 ТТ)
  • Показывать ошибки валидации под каждым полем (красный текст)

EditPage.tsx

  • Те же валидации что и в CreatePage
  • Заменить ввод UUID на select для ТТ
  • При загрузке формы: предвыбрать текущую ТТ сотрудника

Тестирование

  • Создать сотрудника с пустым именем → ошибка валидации
  • Создать с коротким паролем (3 символа) → ошибка
  • Ввести телефон 89001234567 → автоформатируется в +79001234567
  • Выбрать ТТ из выпадающего списка → сохраняется корректный store_id
  • Редактировать сотрудника → ТТ предвыбрана в select