Администрирование

Токен — Firebase ID того же пользователя, чей email указан в ADMIN_EMAILS на сервере. Порт по умолчанию :8081 (ADMIN_HTTP_ADDR).


  
Рекламодатели (§10.4)

Список аккаунтов и смена статуса: 1 на проверке, 2 допущен, 3 блок.

Модерация кампаний
Размещения (§10.5)
Список активных и на паузе
Жизненный цикл кампании

Action 1 пауза, 2 возобновление, 3 снятие админом, 4 срок окончания (нужен ends_at в RFC3339).

Тип учётной записи (users)

Пользователь должен быть в таблице users (уже заходил в приложение). Значения: 1 продавец, 2 покупатель, 3 рекламодатель.

ПВЗ и владельцы (§10.3)

Для назначения владельца и снятия с точки используйте один UUID ПВЗ (можно скопировать из результата поиска).

Поиск ПВЗ
Назначить владельца
Снять сотрудника или владельца с точки
Удалить ПВЗ из базы

Без восстановления: сотрудники, товары на точке, привязки рекламных кампаний к этому UUID. Заказы в истории не удаляются.

Жалобы (§10.6)
Начисление показов (§10.5)
Начислить показы
Баланс показов
Аудит (§10.2)
Параметры запроса к журналу

Фильтры опциональны: подстрока в action, точный email админа, интервал дат UTC (from/to включительно).

Аналитика (§10.7)
Сводка по кампаниям

Счётчики из ad_analytics_event по кампаниям. Интервал суток UTC: query from, to (включительно); пусто — за всё время. В gRPC: AdminAdAnalyticsSummary (from_date_utc, to_date_utc).

CSV строится из последнего успешного ответа «Сводка (таблица)» (UTF-8 с BOM для Excel).

Дневные ряды UTC — одна кампания
Платформа — все кампании (сутки UTC)

Сумма событий по платформе (без campaign_id). Те же from_date / to_date, что у рядов одной кампании (оба пустые → последние 30 суток UTC). HTTP: GET /api/analytics/daily-platform. gRPC: AdminGetPlatformAnalyticsDaily (AdminPlatformAnalyticsDailyRequest).

CSV — последний успешный ответ «Сутки UTC (все кампании)», те же колонки, что в таблице.

Выгрузка событий (CSV / XLSX) и архив

Архив на сервере дублируется в БД. from/to UTC — оба YYYY-MM-DD или оба пустые; pvz — UUID опционально.

История кампании (админ, §7)