export const diagramSources: Record = { 'architecture-overview': `flowchart LR Browser["Браузер клиента"] Frontend["web-frontend
Nuxt 4 + Vue 3"] Proxy["/api/graphql proxy"] Backend["apollo-backend
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`, };