Перейти к содержанию

Потоки данных

Поток регистрации и профиля

  1. Клиент регистрируется в auth_service.
  2. Возвращается токен, используемый для вызовов остальных API.
  3. user_service получает/создает профиль и управляет ролью.

Поток каталога и заказа

  1. product_service отдает список и детали моделей.
  2. order_service хранит model_3d_id, цену и snapshot имени модели в корзине/заказе.
  3. При checkout формируется Order + OrderItem.
  4. Для бесплатных заказов запускается Celery-задача генерации ZIP.

Поток Telegram оплаты и выдачи

sequenceDiagram
  participant U as TelegramUser
  participant B as TelegramBot
  participant O as order_service
  participant P as product_service
  participant C as order_celery

  U->>B: /start + order_number
  B->>O: GET /orders/by_number/{order_number}
  alt pending_payment
    B->>U: send invoice
    U->>B: successful payment
    B->>O: POST update_payment_status_by_number(paid)
  end
  B->>P: GET model details + CSV links
  B->>O: POST upload_zip(order_item)
  O->>C: async free order processing (optional)

Поток модерации и управления

  • admin_service централизованно управляет пользователями, товарами, заказами, отзывами и чатом.
  • Админ-действия генерируют Notification.
  • Workflow заявок продавца (SellerStatusRequest) проходит через pending -> approved|rejected.

Поток веб-аналитики

  1. Пользователь видит баннер cookie; при Принять в localStorage пишется konstructorium_analytics_consent=granted.
  2. webAnalyticsTracker отправляет POST /api/analytics/consent/ и далее батчи POST /api/analytics/events/batch/ (page views, API, ошибки).
  3. analytics_service сохраняет AnalyticsEvent и обновляет AnalyticsSession (IP только как hash).
  4. Администратор в /admin/analytics запрашивает GET /api/admin/dashboard/web/*; admin_service агрегирует данные из analytics_app.

Подробно: Веб-аналитика, analytics_service.

sequenceDiagram
  participant SPA as Frontend_SPA
  participant AS as analytics_service
  participant ADM as admin_service

  SPA->>SPA: consent granted
  SPA->>AS: events/batch
  AS->>AS: persist events + sessions
  Note over ADM: Staff dashboard
  ADM->>AS: ORM read analytics_app tables
  ADM-->>SPA: web/overview, pages, ...