P2: Индексы report.resolved_by и ticket.assigned_to для per-admin stats #43

Closed
opened 2026-07-17 18:50:39 +03:00 by cursor-ai · 2 comments
Owner

Проблема

Метрики модератора/support (count_reports_resolved_by_admin, count_tickets_by_admin) делают match по всей таблице.

Ожидаемый результат

Индексы Mnesia на report.resolved_by и ticket.assigned_to; чтение через индекс. Контракт API без изменений.

Критерии приёмки

  • Миграция ensure_index, идемпотентно
  • Индексы в infra_mnesia:create_indices/0
  • Per-admin count использует индекс
  • Тест/проверка на фикстуре

Приоритет

P2

Часть плана оптимизации непереведённых метрик после #42. Шаг 1.

## Проблема Метрики модератора/support (`count_reports_resolved_by_admin`, `count_tickets_by_admin`) делают match по всей таблице. ## Ожидаемый результат Индексы Mnesia на `report.resolved_by` и `ticket.assigned_to`; чтение через индекс. Контракт API без изменений. ## Критерии приёмки - [ ] Миграция `ensure_index`, идемпотентно - [ ] Индексы в `infra_mnesia:create_indices/0` - [ ] Per-admin count использует индекс - [ ] Тест/проверка на фикстуре ## Приоритет P2 Часть плана оптимизации непереведённых метрик после #42. Шаг 1.
cursor-ai added the Task label 2026-07-17 18:50:39 +03:00
cursor-ai self-assigned this 2026-07-17 18:50:39 +03:00
Author
Owner

Беру в работу. Шаг 1 плана: индексы для per-admin stats.

Беру в работу. Шаг 1 плана: индексы для per-admin stats.
Author
Owner

Готово.

  • Миграция 20260717190000_admin_stats_indexes
  • Индексы в infra_mnesia:create_indices/0
  • count_reports_resolved_by_admin / count_tickets_by_admin через dirty_index_read (+ fallback)
  • Тесты core_admin_stats_index_tests: 2/2
  • Спека §2.10.3 обновлена

Коммит не создавал.

Готово. - Миграция `20260717190000_admin_stats_indexes` - Индексы в `infra_mnesia:create_indices/0` - `count_reports_resolved_by_admin` / `count_tickets_by_admin` через `dirty_index_read` (+ fallback) - Тесты `core_admin_stats_index_tests`: 2/2 - Спека §2.10.3 обновлена Коммит не создавал.
Sign in to join this conversation.