Доработки по задаче https://git.sabilin.com/EventHub/EventHubBack/issues/22 #2

Closed
opened 2026-05-28 22:20:04 +03:00 by aleksey · 1 comment
Owner

План доработок фронтенда на основе задачи #22 и обновлённого Swagger

[x] ## 1. Раздел «Календари» (Calendars)

  • Создать API-слой: calendarsApi.ts (getCalendars, getCalendar, updateCalendar, deleteCalendar)
  • Типы: Calendar, CalendarListParams
  • Хуки: useCalendars, useCalendar, useUpdateCalendar, useDeleteCalendar
  • Страницы:
    • Список календарей с серверной пагинацией, сортировкой, раскраской статусов и типов
    • Детальная страница календаря со всеми полями, ссылкой на владельца
  • Добавить пункт «Календари» в боковое меню (роли: superadmin, admin)
  • Настроить маршруты в App.tsx

[x] ## 2. Редактирование профиля для всех ролей (PUT /v1/admin/me)

  • Создать API-функцию updateMyProfile и хук useUpdateMyProfile
  • На странице /profile убрать ограничение на редактирование только для superadmin
  • Разрешить редактирование любому администратору (поля: nickname, avatar_url, timezone, language, phone, preferences)

3. Статистика по разделам

  • Создать отдельные страницы/вкладки статистики для:
    • Пользователей: по ролям, статусам, неподтверждённые
    • Событий: по типам, статусам, топ-10 по рейтингу
    • Жалоб: по типам цели, статусам, топ-10 целей
    • Отзывов: по типам цели, статусам, топ-10, позитивные/негативные
    • Подписок: по планам, статусам, пробным, истекающим
    • Календарей: по типам, топ по отзывам
  • Для каждого раздела создать API-функции и хуки
  • Интегрировать в существующие разделы как дополнительные вкладки

4. Массовое обновление отзывов (PATCH /reviews)

  • Изменить структуру запроса: отправлять объект { operations: [...], reason: "..." }
  • Обновить модальное окно массового изменения статуса: передавать причину вместе с операциями
  • В API-сервисе и хуках использовать новую структуру

5. Доработка бан-слов

  • Добавить редактирование слова: PUT /v1/admin/banned-words/{word}
  • Добавить пакетное добавление: POST /v1/admin/banned-words/batch
  • Реализовать UI: кнопка редактирования в таблице, форма пакетного ввода

6. Подтверждение регистрации пользователей

  • Добавить возможность подтверждения пользователей (эндпоинт уточнить)
  • Отображать кнопку «Подтвердить» для неподтверждённых пользователей в списке
  • Или создать отдельный список ожидающих подтверждения (pending_users из статистики)

7. WebSocket – оперативная статистика

  • Расширить useAdminWebSocket для приёма новых типов сообщений (статистика нод Mnesia)
  • Создать виджет/страницу мониторинга нод
  • Точный формат сообщений уточнить у бэкенда

8. Сортировка отзывов

  • Проверить, что в списке отзывов работают серверные сортировки по created_at, updated_at, rating
  • Убедиться, что ReviewListParams содержит sort и order

9. Обновление refresh-токена администратора

  • При необходимости заменить POST /v1/refresh на POST /v1/admin/refresh в client.ts и authApi.ts
  • Проверить совместимость со старым эндпоинтом

10. Статистика тикетов

  • В типе TicketStats заменить total на total_tickets, добавить total_errors
  • На странице тикетов использовать новые поля

Приоритет: пункты 1, 2, 3 – высокий; 4, 5, 6 – средний; 7, 8, 9, 10 – низкий.

# План доработок фронтенда на основе задачи #22 и обновлённого Swagger [x] ## 1. Раздел «Календари» (Calendars) - Создать API-слой: calendarsApi.ts (getCalendars, getCalendar, updateCalendar, deleteCalendar) - Типы: Calendar, CalendarListParams - Хуки: useCalendars, useCalendar, useUpdateCalendar, useDeleteCalendar - Страницы: - Список календарей с серверной пагинацией, сортировкой, раскраской статусов и типов - Детальная страница календаря со всеми полями, ссылкой на владельца - Добавить пункт «Календари» в боковое меню (роли: superadmin, admin) - Настроить маршруты в App.tsx [x] ## 2. Редактирование профиля для всех ролей (`PUT /v1/admin/me`) - Создать API-функцию updateMyProfile и хук useUpdateMyProfile - На странице /profile убрать ограничение на редактирование только для superadmin - Разрешить редактирование любому администратору (поля: nickname, avatar_url, timezone, language, phone, preferences) ## 3. Статистика по разделам - Создать отдельные страницы/вкладки статистики для: - Пользователей: по ролям, статусам, неподтверждённые - Событий: по типам, статусам, топ-10 по рейтингу - Жалоб: по типам цели, статусам, топ-10 целей - Отзывов: по типам цели, статусам, топ-10, позитивные/негативные - Подписок: по планам, статусам, пробным, истекающим - Календарей: по типам, топ по отзывам - Для каждого раздела создать API-функции и хуки - Интегрировать в существующие разделы как дополнительные вкладки ## 4. Массовое обновление отзывов (PATCH /reviews) - Изменить структуру запроса: отправлять объект { operations: [...], reason: "..." } - Обновить модальное окно массового изменения статуса: передавать причину вместе с операциями - В API-сервисе и хуках использовать новую структуру ## 5. Доработка бан-слов - Добавить редактирование слова: PUT /v1/admin/banned-words/{word} - Добавить пакетное добавление: POST /v1/admin/banned-words/batch - Реализовать UI: кнопка редактирования в таблице, форма пакетного ввода ## 6. Подтверждение регистрации пользователей - Добавить возможность подтверждения пользователей (эндпоинт уточнить) - Отображать кнопку «Подтвердить» для неподтверждённых пользователей в списке - Или создать отдельный список ожидающих подтверждения (pending_users из статистики) ## 7. WebSocket – оперативная статистика - Расширить useAdminWebSocket для приёма новых типов сообщений (статистика нод Mnesia) - Создать виджет/страницу мониторинга нод - Точный формат сообщений уточнить у бэкенда ## 8. Сортировка отзывов - Проверить, что в списке отзывов работают серверные сортировки по created_at, updated_at, rating - Убедиться, что ReviewListParams содержит sort и order ## 9. Обновление refresh-токена администратора - При необходимости заменить POST /v1/refresh на POST /v1/admin/refresh в client.ts и authApi.ts - Проверить совместимость со старым эндпоинтом ## 10. Статистика тикетов - В типе TicketStats заменить total на total_tickets, добавить total_errors - На странице тикетов использовать новые поля Приоритет: пункты 1, 2, 3 – высокий; 4, 5, 6 – средний; 7, 8, 9, 10 – низкий.
aleksey added the Story label 2026-05-28 22:20:24 +03:00
aleksey added reference master 2026-05-28 22:20:31 +03:00
Owner

Пункт 3: статистика на list-страницах уже была; добавлены Календари в меню, total_tickets/total_errors на тикетах. Эпик открыт (п.4–10).

Пункт 3: статистика на list-страницах уже была; добавлены Календари в меню, total_tickets/total_errors на тикетах. Эпик открыт (п.4–10).
Sign in to join this conversation.