Files
web-frontend/docs/.vitepress/theme/components/diagramSources.ts
2026-05-01 15:09:02 +07:00

239 lines
8.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export const diagramSources: Record<string, string> = {
'architecture-overview': `flowchart LR
Browser["Браузер клиента"]
Frontend["web-frontend<br/>Nuxt 4 + Vue 3"]
Proxy["/api/graphql proxy"]
Backend["apollo-backend<br/>Apollo Server + Express"]
Prisma["Prisma ORM"]
Db[("PostgreSQL")]
Vault["Vault"]
OneC["1С"]
Bots["Telegram / MAX / email"]
Dokploy["Dokploy"]
Browser --> Frontend
Frontend --> Proxy
Proxy --> Backend
Backend --> Prisma
Prisma --> Db
Backend -.bootstrap env.-> Vault
Backend -.sync / events.-> OneC
Backend -.notifications.-> Bots
Frontend -.deploy.-> Dokploy
Backend -.deploy.-> Dokploy`,
'component-map': `flowchart LR
subgraph UI["UI и маршруты"]
Pages["app/pages"]
Components["app/components"]
Composables["app/composables"]
Middleware["middleware / plugins"]
end
subgraph Transport["Контракт и transport"]
Ops["graphql/operations"]
Generated["generated.ts"]
Apollo["Apollo client"]
Api["server/api/graphql"]
end
subgraph Server["Backend logic"]
Schema["schema.graphql"]
Resolvers["resolvers.js"]
Auth["auth.js / access.js"]
Context["context.js"]
Messenger["messenger / telegram / max"]
end
subgraph Data["Data layer"]
Prisma["prisma-client.js"]
PrismaSchema["schema.prisma"]
Db[("PostgreSQL")]
end
Pages --> Components
Pages --> Composables
Components --> Composables
Composables --> Apollo
Middleware --> Pages
Ops --> Generated
Generated --> Apollo
Apollo --> Api
Api --> Schema
Schema --> Resolvers
Resolvers --> Auth
Resolvers --> Context
Resolvers --> Messenger
Resolvers --> Prisma
Prisma --> PrismaSchema
Prisma --> Db`,
'infrastructure-topology': `flowchart TB
subgraph Repo["Репозиторий fregat"]
FrontendRepo["web-frontend"]
BackendRepo["apollo-backend"]
TgRepo["tg-bot"]
MaxRepo["max-bot"]
BonusRepo["bonus-bot"]
WorkerRepo["hatchet-worker"]
VaultRepo["vault"]
end
subgraph Dokploy["Dokploy"]
FrontendSvc["web-frontend service"]
BackendSvc["apollo-backend service"]
TgSvc["tg-bot service"]
MaxSvc["max-bot service"]
BonusSvc["bonus-bot service"]
WorkerSvc["hatchet-worker service"]
VaultSvc["vault service"]
end
subgraph Infra["Инфраструктурный контур"]
VaultData["Vault raft storage /vault/data"]
BackendDb[("PostgreSQL for app")]
HatchetEngine["Hatchet engine"]
HatchetPg[("PostgreSQL for Hatchet")]
OneC["1С"]
Tailscale["Tailscale SSH / diagnostics"]
end
FrontendRepo --> FrontendSvc
BackendRepo --> BackendSvc
TgRepo --> TgSvc
MaxRepo --> MaxSvc
BonusRepo --> BonusSvc
WorkerRepo --> WorkerSvc
VaultRepo --> VaultSvc
FrontendSvc --> BackendSvc
BackendSvc --> BackendDb
BackendSvc --> VaultSvc
TgSvc --> VaultSvc
MaxSvc --> VaultSvc
BonusSvc --> VaultSvc
WorkerSvc --> VaultSvc
VaultSvc --> VaultData
WorkerSvc --> HatchetEngine
HatchetEngine --> HatchetPg
BackendSvc -.exchange.-> OneC
FrontendSvc -.ops / debug.-> Tailscale
BackendSvc -.ops / debug.-> Tailscale`,
'database-model': `classDiagram
direction LR
class Company
class User
class CounterpartyProfile
class DeliveryAddress
class RegistrationRequest
class Invitation
class MessengerConnection
class Product
class Warehouse
class ProductStock
class CatalogProductTypeSetting
class Cart
class CartItem
class Order
class OrderItem
class OrderStatusEvent
class ReferralLink
class BonusTransaction
class RewardWithdrawalRequest
Company "1" --> "*" User : users
User "1" --> "0..1" CounterpartyProfile : profile
User "1" --> "*" DeliveryAddress : addresses
User "1" --> "*" MessengerConnection : channels
User "1" --> "0..1" Cart : cart
User "1" --> "*" Order : orders
User "1" --> "*" RegistrationRequest : requests
User "1" --> "*" Invitation : invitations
Product "1" --> "*" ProductStock : balances
Warehouse "1" --> "*" ProductStock : inventory
Product "1" --> "*" CartItem : cartItems
Product "1" --> "*" OrderItem : orderItems
Cart "1" --> "*" CartItem : items
Order "1" --> "*" OrderItem : items
Order "1" --> "*" OrderStatusEvent : history
User "1" --> "*" BonusTransaction : bonus
User "1" --> "*" RewardWithdrawalRequest : withdrawals
User "1" --> "*" ReferralLink : referrals
CatalogProductTypeSetting --> Product : productType`,
dashboard: `flowchart TB
subgraph Page["Главная страница клиента"]
Header["Header / навигация"]
Quick["Быстрые действия"]
Active["Актуальные заказы и заявки"]
Notes["Последние уведомления"]
Bonus["Бонусный блок"]
end
Header --> Quick --> Active --> Notes --> Bonus`,
'catalog-grid': `flowchart TB
subgraph Catalog["Каталог продукции"]
Title["Заголовок раздела"]
Search["Поиск"]
Grid["Сетка карточек товарных направлений"]
Cards["Упаковочный скотч | Алюминиевый скотч | Крепп | Вспененный | Двусторонний ПП | Двусторонний PVC"]
end
Title --> Search --> Grid --> Cards`,
'product-card': `flowchart TB
subgraph ProductPage["Карточка товара"]
Title["Заголовок товара и навигация"]
subgraph TopRow["Верхний блок"]
Image["Изображение товара"]
Params["Параметры выбора"]
Action["SKU / действие В корзину"]
end
Help["Пояснения по параметрам"]
Table["Таблица доступных вариантов"]
end
Title --> TopRow --> Help --> Table`,
cart: `flowchart TB
subgraph CartPage["Корзина"]
Items["Список выбранных позиций"]
Delivery["Адрес доставки"]
Comment["Комментарий клиента"]
Submit["Отправить заявку"]
end
Items --> Delivery --> Comment --> Submit`,
'client-order': `flowchart TB
subgraph ClientOrder["Карточка заявки / заказа"]
Summary["Номер документа и статус"]
Composition["Состав позиций"]
Terms["Стоимость и условия поставки"]
History["История изменений"]
end
Summary --> Composition --> Terms --> History`,
'bonus-cabinet': `flowchart TB
subgraph BonusPage["Бонусный кабинет"]
Balance["Текущий бонусный баланс"]
History["История операций"]
Referrals["Реферальные связи"]
Action["Подача заявки на использование или вывод"]
end
Balance --> History --> Referrals --> Action`,
'manager-order': `flowchart TB
subgraph ManagerOrder["Карточка обработки заявки"]
Summary["Клиент / контрагент / менеджер"]
Payload["Состав заявки или расчетный payload"]
Terms["Стоимость и условия поставки"]
Actions["Опубликовать условия / перевести в работу / отменить"]
end
Summary --> Payload --> Terms --> Actions`,
'manager-orders': `flowchart TB
subgraph ManagerOrders["Список заказов менеджера"]
Header["Заголовок раздела"]
Filters["Фильтры: статус / клиент / период"]
Table["Таблица заказов"]
end
Header --> Filters --> Table`,
};