Обзор показателей промокодов проекта

Даёт сводку для главного экрана «Промокоды»: сколько кодов в каждом статусе, разбивка по поставщикам, последние завершённые поступления. Нужен руководителю и оператору для контроля остатков и загрузки

Даёт сводку для главного экрана «Промокоды»: сколько кодов в каждом статусе, разбивка по поставщикам, последние завершённые поступления.

Зачем нужен метод

Даёт сводку для главного экрана «Промокоды»: сколько кодов в каждом статусе, разбивка по поставщикам, последние завершённые поступления. Нужен руководителю и оператору для контроля остатков и загрузки складов.

Когда использовать

Вызывайте при открытии раздела «Промокоды» или для виджетов мониторинга. Один запрос вместо нескольких list/summary.

Типовой сценарий

  1. Убедитесь, что пользователь выбрал проект в UI.
  2. Передайте projectId активного проекта.
  3. Отобразите byStatus, bySupplier, recentIncoming.

Эндпоинт

POST /v1/internal/dashboard/overview

Аутентификация: JWT — заголовок Authorization: Bearer <token>. Пользователь должен иметь доступ к проекту и permission inventory_promo_codes.

Permission: inventory_promo_codes.view

Пример запроса

{
  "meta": { "requestId": "optional-uuid" },
  "data": { "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }
}

Пример ответа

{
  "success": true,
  "data": {
    "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "totalCount": 211350,
    "byStatus": {
      "available": 125000,
      "realized": 45000,
      "redeemed": 38000,
      "expired": 2100,
      "revoked": 250
    },
    "bySupplier": [
      {
        "supplierId": "c219ef09-ae2f-4d08-af11-7cd51006fae4",
        "supplierName": "Промомед",
        "totalCount": 150000,
        "availableCount": 90000
      }
    ],
    "recentIncoming": [
      {
        "incomingId": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
        "supplierName": "Промомед",
        "status": "completed",
        "insertedAvailable": 1480,
        "completedAt": "2026-07-13T09:20:00Z"
      }
    ],
    "asOf": "2026-07-13T12:00:00Z"
  },
  "meta": { "requestId": "…", "serverTime": "2026-07-13T12:00:01Z" }
}

Ошибки

  • UNAUTHORIZED / ACCESS_DENIED — нет доступа
  • VALIDATION_ERROR — некорректное тело
  • NOT_FOUND — сущность не найдена
  • RATE_LIMIT_EXCEEDED (429) — превышен лимит

cURL

curl -X POST "https://api-external.promanta.ru/v1/internal/dashboard/overview" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_JWT" \
  -d '{"data": { "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" }}'

См. также

Оцените статью — нам важна ваша обратная связь.

0 (0 оценок)