STORE-03: Список ТТ — таблица, пагинация, состояния
Что сделать
Реализовать страницу /stores с таблицей торговых точек, пагинацией и базовыми состояниями.
Смотри спеку
Секции “Таблица”, “Пагинация”, “Состояния” в Торговые точки — Список.
Конкретно
Таблица
Колонки: Название (кликабельное → /stores/{id}), Адрес, ЮЛ (legal_entity.name), Статус (бейдж), Город, Действия (меню ⋮).
Бейджи статусов:
draft— серый, “Черновик”published— зелёный, “Опубликована”suspended— красный, “Приостановлена”
Пагинация
20 на страницу. Номера страниц + стрелки. page, per_page в query.
API
GET /api/v1/admin/stores → web/src/api/stores.ts → authFetch.
Состояния
- Загрузка: skeleton-таблица (5 placeholder строк)
- Пусто (Franchise): “Торговые точки пока не добавлены” + кнопка “Создать ТТ”
- Пусто (Franchisee/Manager): “Торговые точки пока не добавлены”
- Ошибка: “Не удалось загрузить данные” + “Повторить”
- Пустой поиск: “Ничего не найдено по запросу «…»”
Шапка
Заголовок “Торговые точки” + кнопка “Создать ТТ” (только Franchise) → /stores/new.
Файлы
web/src/pages/stores/ListPage.tsx— создатьweb/src/api/stores.ts— создать (getList, и другие функции)
Зависит от
- STORE-01 (типы)
- STORE-02 (BFF)