STORE-07: Форма создания ТТ с редактором расписания

Что сделать

Реализовать страницу /stores/new с формой создания ТТ, включая редактор расписания по дням недели.

Смотри спеку

Секция “Создание” в Торговые точки — Карточка.

Конкретно

Доступ

Только Franchise. Остальные роли — redirect на /stores.

Поля формы

ПолеТипОбязательноВалидация
НазваниеTextДаmax 255
АдресTextДаmax 500
ШиротаNumberДа-90..90, до 6 знаков
ДолготаNumberДа-180..180, до 6 знаков
ГородTextНетmax 255
ТелефонTextНет+7 (XXX) XXX-XX-XX
EmailTextНетemail
ЮЛSelectДаИз GET /api/v1/admin/legal-entities?status=active&per_page=100

Редактор расписания

7 строк (Пн–Вс), каждая:

  • Название дня (label)
  • Время открытия (time input HH:MM), disabled если “Выходной”
  • Время закрытия (time input HH:MM), disabled если “Выходной”
  • Checkbox “Выходной” — при включении очищает и блокирует time inputs

Быстрая настройка:

  • Checkbox “Одинаковый для всех дней” — значения Понедельника копируются во все дни в реальном времени
  • При отключении — дни становятся независимыми (значения сохраняются)

Валидация серверная

КодКогда
NAME_DUPLICATEДубликат названия в рамках ЮЛ
LEGAL_ENTITY_NOT_FOUNDЮЛ не найдено или не активно

Ошибки показываются под соответствующим полем.

Кнопки

  • “Сохранить” → POST /api/v1/admin/stores
  • “Отмена” → /stores (с подтверждением если есть несохранённые данные)

После успеха

Redirect на /stores/{new_id}, toast “Торговая точка создана”

Файлы

  • web/src/pages/stores/CreatePage.tsx — создать
  • web/src/api/stores.ts — добавить create

Зависит от

  • STORE-01 (типы)
  • STORE-02 (BFF)