Потоки данных¶
Поток регистрации и профиля¶
- Клиент регистрируется в
auth_service. - Возвращается токен, используемый для вызовов остальных API.
user_serviceполучает/создает профиль и управляет ролью.
Поток каталога и заказа¶
product_serviceотдает список и детали моделей.order_serviceхранитmodel_3d_id, цену и snapshot имени модели в корзине/заказе.- При checkout формируется
Order+OrderItem. - Для бесплатных заказов запускается 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.
Поток веб-аналитики¶
- Пользователь видит баннер cookie; при Принять в
localStorageпишетсяkonstructorium_analytics_consent=granted. webAnalyticsTrackerотправляетPOST /api/analytics/consent/и далее батчиPOST /api/analytics/events/batch/(page views, API, ошибки).analytics_serviceсохраняетAnalyticsEventи обновляетAnalyticsSession(IP только как hash).- Администратор в
/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, ...