fix(types): add images array to Product interface in admin panel
Some checks are pending
Deploy Canina / deploy (push) Waiting to run

This commit is contained in:
parsa aghaei 2026-08-18 15:46:33 +03:30
parent 36e382cf16
commit 0c2d104ca2
12 changed files with 7113 additions and 6820 deletions

View File

@ -36,6 +36,7 @@ export interface Product {
dosageLogic?: string;
suitableFor?: string;
imageUrl?: string;
images?: string[];
metaTitle?: string;
metaDescription?: string;
keywords?: string;

View File

@ -18,7 +18,7 @@
"16": "lib/services/api.ts",
"17": "CreateVideoDto",
"18": "src/services/api.ts",
"19": "eslint",
"19": "eslint-plugin-prettier",
"20": "BE-001",
"21": "Roles",
"22": "FE-001",
@ -311,5 +311,5 @@
"309": "tsconfig-paths",
"310": "@types/bcryptjs",
"311": "typescript-eslint",
"312": "globals"
"312": "tailwindcss"
}

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,9 @@
{
"0": "AdminService",
"1": "ProductService",
"0": "AdminController",
"1": "productService.ts",
"2": "CmsController",
"3": "app.module.ts",
"4": "reviews.controller.ts",
"4": "CreateReviewDto",
"5": "tickets.controller.ts",
"6": "UserDashboard.tsx",
"7": "MediaSelector.tsx",
@ -18,7 +18,7 @@
"16": "lib/services/api.ts",
"17": "CreateVideoDto",
"18": "src/services/api.ts",
"19": "devDependencies",
"19": "eslint",
"20": "BE-001",
"21": "Roles",
"22": "FE-001",
@ -28,21 +28,21 @@
"26": "TEST-001",
"27": "DEVOPS-001",
"28": "DOC-001",
"29": "wholesale.controller.ts",
"29": "WholesaleApplyDto",
"30": "main.ts",
"31": "admin.module.ts",
"31": "JwtAuthGuard",
"32": "ZibalService",
"33": "راهنمای تست سیستم (Software Testing)",
"34": "CategoriesController",
"35": "B2BService",
"36": "What You Must Do When Invoked",
"37": "toPersian",
"37": "userStore.ts",
"38": "UsersService",
"39": "What You Must Do When Invoked",
"40": "SslController",
"41": "ProductPage.tsx",
"41": "PodcastPlayerModal.tsx",
"42": "IngredientsService",
"43": "admin.service.ts",
"43": "AuthService",
"44": "MediaController",
"45": "Pagination.tsx",
"46": "SmsService",
@ -56,23 +56,23 @@
"54": "compilerOptions",
"55": "Media.tsx",
"56": "compilerOptions",
"57": "PetsController",
"57": "admin.module.ts",
"58": "PaginationDto",
"59": "dependencies",
"60": "compilerOptions",
"61": "HomeClient.tsx",
"62": "BlogsController",
"63": "auth.controller.ts",
"64": "users.service.ts",
"63": "AuthController",
"64": "BannersService",
"65": "Required Review Group Closures",
"66": "Coupons.tsx",
"67": "Operational Rules & Boundaries",
"68": "Operational Rules & Boundaries",
"69": "WikiController",
"70": "auth.module.ts",
"71": "PetsController",
"70": "ApiOperation",
"71": "pets/pets.controller.ts",
"72": "seo.module.ts",
"73": "BlogsService",
"73": "admin.service.ts",
"74": "🏢 AI Software Agency — Master Orchestration Protocol v3",
"75": "Operational Rules & Boundaries",
"76": "Operational Rules & Boundaries",
@ -89,7 +89,7 @@
"87": "20260526145407_init/migration.sql",
"88": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
"89": "dependencies",
"90": "SafeImage.tsx",
"90": "ProductPage.tsx",
"91": "compilerOptions",
"92": "scripts",
"93": "Deep Audit Summary Report",
@ -101,16 +101,16 @@
"99": "Comprehensive Change Log",
"100": "Operational Rules & Boundaries",
"101": "CreateOrderDto",
"102": "SmsLogQueryDto",
"103": "ZibalCallbackQueryDto",
"104": "ValidateCouponDto",
"102": ".update",
"103": ".handleZibalCallback",
"104": "auth.service.ts",
"105": "1. Summary of Integrity Repairs Performed",
"106": "eslint-config-prettier",
"107": "Operational Rules & Boundaries",
"108": "Operational Rules & Boundaries",
"109": "Operational Rules & Boundaries",
"110": "AppService",
"111": "AdminModule",
"111": "auth.controller.ts",
"112": "@types/react-dom",
"113": "Vazirmatn Changelog",
"114": "Vazirmatn Font فونت وزیرمتن",
@ -118,7 +118,7 @@
"116": "compilerOptions",
"117": "compilerOptions",
"118": "backend/README.md",
"119": "eslint-plugin-prettier",
"119": "devDependencies",
"120": "Repository Map",
"121": "validate_integrity.js",
"122": "admin-panel/package.json",
@ -128,6 +128,7 @@
"126": "Role & Core Objective",
"127": "orchestrate.py",
"128": "backend/package.json",
"129": "PetsService",
"130": "graphify reference: extra exports and benchmark",
"131": "Phase 2 Final Quality Gate Summary Report",
"132": "Task Modifications Log",
@ -139,6 +140,7 @@
"138": "InitiatePaymentDto",
"139": "System Discovery",
"140": "Product Requirement Document (PRD)",
"141": "WikiController",
"142": "globals",
"143": "@nestjs/cli",
"144": "Baseline Command Plan & Reconciled Command History",
@ -171,7 +173,7 @@
"171": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
"172": "🚀 SEO & Content Strategy Review (12_seo_content)",
"173": "@types/node",
"174": "typescript",
"174": "Body",
"175": "seed-ui-texts.ts",
"176": "seed-wiki.ts",
"177": "update-blog.dto.ts",
@ -209,9 +211,10 @@
"209": "sync_honest_manifest.js",
"210": "sync_manifest.js",
"211": "@types/multer",
"212": "@types/passport-jwt",
"213": "tailwindcss",
"214": "AppModule",
"212": "ProductDto",
"213": "PetsController",
"214": "RedisService",
"215": "WikiService",
"216": "FormField.tsx",
"217": "Input.tsx",
"218": "Textarea.tsx",
@ -235,9 +238,11 @@
"236": "vitest",
"237": "axios",
"238": "tailwindcss",
"239": "RegisterDto",
"240": "ts-loader",
"241": "AdminService",
"242": "@types/bcrypt",
"243": "@types/supertest",
"243": "MetricsController",
"244": "blog.entity.ts",
"245": "home.entity.ts",
"246": "wiki.entity.ts",
@ -282,5 +287,29 @@
"285": "Sahel Font Variable Sample",
"286": "Shabnam Font Sample",
"287": "Production Docker Compose",
"288": "Staging Docker Compose"
"288": "Staging Docker Compose",
"289": "CreateHealthLogDto",
"290": "CreateReminderDto",
"291": "NetworkBanner.tsx",
"292": "bcryptjs",
"293": "helmet",
"294": "js-yaml",
"295": "@nestjs/core",
"296": "@nestjs/jwt",
"297": "@nestjs/swagger",
"298": "@nestjs/throttler",
"299": "passport-jwt",
"300": "@prisma/client",
"301": "swagger-ui-express",
"302": "@eslint/eslintrc",
"303": "@eslint/js",
"304": "jest",
"305": "@nestjs/schematics",
"306": "@nestjs/testing",
"307": "source-map-support",
"308": "ts-jest",
"309": "tsconfig-paths",
"310": "@types/bcryptjs",
"311": "typescript-eslint",
"312": "globals"
}

View File

@ -1,25 +1,25 @@
# Graph Report - canina (2026-08-18)
## Corpus Check
- 510 files · ~733,001 words
- 511 files · ~734,432 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 3627 nodes · 6157 edges · 284 communities (186 shown, 98 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 225 edges (avg confidence: 0.79)
- 3634 nodes · 6166 edges · 313 communities (196 shown, 117 thin omitted)
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 228 edges (avg confidence: 0.79)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `f0f50c75`
- Built from commit: `95d79518`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- AdminService
- ProductService
- AdminController
- productService.ts
- CmsController
- app.module.ts
- reviews.controller.ts
- CreateReviewDto
- tickets.controller.ts
- UserDashboard.tsx
- MediaSelector.tsx
@ -34,7 +34,7 @@
- lib/services/api.ts
- CreateVideoDto
- src/services/api.ts
- devDependencies
- eslint
- BE-001
- Roles
- FE-001
@ -44,21 +44,21 @@
- TEST-001
- DEVOPS-001
- DOC-001
- wholesale.controller.ts
- WholesaleApplyDto
- main.ts
- admin.module.ts
- JwtAuthGuard
- ZibalService
- راهنمای تست سیستم (Software Testing)
- CategoriesController
- B2BService
- What You Must Do When Invoked
- toPersian
- userStore.ts
- UsersService
- What You Must Do When Invoked
- SslController
- ProductPage.tsx
- PodcastPlayerModal.tsx
- IngredientsService
- admin.service.ts
- AuthService
- MediaController
- Pagination.tsx
- SmsService
@ -72,23 +72,23 @@
- compilerOptions
- Media.tsx
- compilerOptions
- PetsController
- admin.module.ts
- PaginationDto
- dependencies
- compilerOptions
- HomeClient.tsx
- BlogsController
- auth.controller.ts
- users.service.ts
- AuthController
- BannersService
- Required Review Group Closures
- Coupons.tsx
- Operational Rules & Boundaries
- Operational Rules & Boundaries
- WikiController
- auth.module.ts
- PetsController
- ApiOperation
- pets/pets.controller.ts
- seo.module.ts
- BlogsService
- admin.service.ts
- 🏢 AI Software Agency — Master Orchestration Protocol v3
- Operational Rules & Boundaries
- Operational Rules & Boundaries
@ -105,7 +105,7 @@
- 20260526145407_init/migration.sql
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
- dependencies
- SafeImage.tsx
- ProductPage.tsx
- compilerOptions
- scripts
- Deep Audit Summary Report
@ -117,16 +117,16 @@
- Comprehensive Change Log
- Operational Rules & Boundaries
- CreateOrderDto
- SmsLogQueryDto
- ZibalCallbackQueryDto
- ValidateCouponDto
- .update
- .handleZibalCallback
- auth.service.ts
- 1. Summary of Integrity Repairs Performed
- eslint-config-prettier
- Operational Rules & Boundaries
- Operational Rules & Boundaries
- Operational Rules & Boundaries
- AppService
- AdminModule
- auth.controller.ts
- @types/react-dom
- Vazirmatn Changelog
- Vazirmatn Font فونت وزیرمتن
@ -134,7 +134,7 @@
- compilerOptions
- compilerOptions
- backend/README.md
- eslint-plugin-prettier
- devDependencies
- Repository Map
- validate_integrity.js
- admin-panel/package.json
@ -144,6 +144,7 @@
- Role & Core Objective
- orchestrate.py
- backend/package.json
- PetsService
- graphify reference: extra exports and benchmark
- Phase 2 Final Quality Gate Summary Report
- Task Modifications Log
@ -155,6 +156,7 @@
- InitiatePaymentDto
- System Discovery
- Product Requirement Document (PRD)
- WikiController
- globals
- @nestjs/cli
- Baseline Command Plan & Reconciled Command History
@ -187,7 +189,7 @@
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
- 🚀 SEO & Content Strategy Review (12_seo_content)
- @types/node
- typescript
- Body
- seed-ui-texts.ts
- seed-wiki.ts
- update-blog.dto.ts
@ -225,9 +227,10 @@
- sync_honest_manifest.js
- sync_manifest.js
- @types/multer
- @types/passport-jwt
- tailwindcss
- AppModule
- ProductDto
- PetsController
- RedisService
- WikiService
- FormField.tsx
- Input.tsx
- Textarea.tsx
@ -249,9 +252,11 @@
- @types/react
- typescript
- vitest
- RegisterDto
- ts-loader
- AdminService
- @types/bcrypt
- @types/supertest
- MetricsController
- blog.entity.ts
- home.entity.ts
- wiki.entity.ts
@ -284,6 +289,30 @@
- Shabnam Font Sample
- Production Docker Compose
- Staging Docker Compose
- CreateHealthLogDto
- CreateReminderDto
- NetworkBanner.tsx
- bcryptjs
- helmet
- js-yaml
- @nestjs/core
- @nestjs/jwt
- @nestjs/swagger
- @nestjs/throttler
- passport-jwt
- @prisma/client
- swagger-ui-express
- @eslint/eslintrc
- @eslint/js
- jest
- @nestjs/schematics
- @nestjs/testing
- source-map-support
- ts-jest
- tsconfig-paths
- @types/bcryptjs
- typescript-eslint
- globals
## God Nodes (most connected - your core abstractions)
1. `PrismaService` - 81 edges
@ -310,43 +339,43 @@
backend/src/orders/orders.controller.ts → frontend/admin-panel/src/types/admin.ts
## Import Cycles
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/api.ts`
- 3-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/services/authService.ts -> frontend/application/lib/services/api.ts`
- 4-file cycle: `frontend/application/lib/services/api.ts -> frontend/application/lib/store/userStore.ts -> frontend/application/lib/store/cartStore.ts -> frontend/application/lib/services/orderService.ts -> frontend/application/lib/services/api.ts`
## Hyperedges (group relationships)
- **Rastikerdar Font Ecosystem** — frontend_application_public_fonts_shabnam_font_v5_0_1_readme, frontend_application_public_fonts_vazirmatn_v33_003_readme, vazir_font [EXTRACTED 0.95]
- **Canina Deployment Stack** — scripts_compose_prod, scripts_compose_stage [EXTRACTED 1.00]
## Communities (284 total, 98 thin omitted)
## Communities (313 total, 117 thin omitted)
### Community 0 - "AdminService"
Cohesion: 0.05
Nodes (38): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+30 more)
### Community 0 - "AdminController"
Cohesion: 0.13
Nodes (8): AdminController, ApiBearerAuth, ApiTags, Controller, Delete, Param, Put, UseGuards
### Community 1 - "ProductService"
### Community 1 - "productService.ts"
Cohesion: 0.06
Nodes (33): Blog(), getBlogs(), metadata, CatalogClient(), metadata, metadata, BlogPage(), BlogPost (+25 more)
Nodes (36): Blog(), getBlogs(), metadata, CatalogClient(), metadata, metadata, metadata, BlogPage() (+28 more)
### Community 2 - "CmsController"
Cohesion: 0.09
Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
### Community 3 - "app.module.ts"
Cohesion: 0.08
Nodes (30): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+22 more)
### Community 4 - "reviews.controller.ts"
Cohesion: 0.07
Nodes (31): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+23 more)
Nodes (36): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+28 more)
### Community 4 - "CreateReviewDto"
Cohesion: 0.07
Nodes (29): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+21 more)
### Community 5 - "tickets.controller.ts"
Cohesion: 0.09
Nodes (29): AdminUpdateTicketDto, CreateTicketDto, ReplyTicketDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString (+21 more)
### Community 6 - "UserDashboard.tsx"
Cohesion: 0.11
Nodes (22): AddressModal(), AddressModalProps, BackButton(), BackButtonProps, CheckoutPage(), DeleteConfirmModal(), DeleteConfirmModalProps, HeaderButton() (+14 more)
Cohesion: 0.09
Nodes (28): VerifyContent(), AddressModal(), AddressModalProps, BackButton(), BackButtonProps, DeleteConfirmModal(), DeleteConfirmModalProps, HeaderButton() (+20 more)
### Community 7 - "MediaSelector.tsx"
Cohesion: 0.08
@ -357,24 +386,24 @@ Cohesion: 0.17
Nodes (9): ReportsController, ApiBearerAuth, ApiOperation, ApiTags, Controller, Get, UseGuards, ReportsService (+1 more)
### Community 9 - "PetProfile.tsx"
Cohesion: 0.08
Nodes (25): metadata, FeaturedProducts(), ProductCard(), OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage(), OrderRowSkeleton() (+17 more)
Cohesion: 0.14
Nodes (12): FeaturedProducts(), OrderRowSkeleton(), PetProfileSkeleton(), ProductCardSkeleton(), Skeleton(), SkeletonProps, mockProducts, HealthLog (+4 more)
### Community 10 - "DoctorsService"
Cohesion: 0.12
Nodes (16): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
Cohesion: 0.13
Nodes (15): DoctorsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 11 - "useSettingsStore"
Cohesion: 0.12
Nodes (18): ClientLayout(), metadata, BrandLogo(), BrandLogoProps, EnamadBadge(), Footer(), Header(), MENU_ICONS (+10 more)
Cohesion: 0.14
Nodes (14): metadata, BrandLogo(), BrandLogoProps, EnamadBadge(), Footer(), Hero(), StatCounter(), MaintenancePage() (+6 more)
### Community 12 - "adminRoutes.tsx"
Cohesion: 0.10
Nodes (14): App(), ContactInfoItem, ContactSubmission, CategoryDist, DashboardData, Ticket, TicketMessage, WholesaleRequest (+6 more)
### Community 13 - "PrismaService"
Cohesion: 0.10
Nodes (13): WikiQuery, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto (+5 more)
Cohesion: 0.09
Nodes (14): MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig, SmsLogQuery, CreateContactSubmissionDto, UpdateContactInfoItemDto, DoctorQuery (+6 more)
### Community 14 - "BlogsController"
Cohesion: 0.13
@ -386,27 +415,23 @@ Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, P
### Community 16 - "lib/services/api.ts"
Cohesion: 0.06
Nodes (18): metadata, ContactFormClient(), ContactInfoItem, OrderDetailsModal(), OrderDetailsModalProps, Testimonial, api, ApiErrorPayload (+10 more)
Nodes (18): metadata, ContactFormClient(), ContactInfoItem, Testimonial, TestimonialsSection(), api, ApiErrorPayload, BASE_DOMAIN (+10 more)
### Community 17 - "CreateVideoDto"
Cohesion: 0.07
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more)
Cohesion: 0.09
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
### Community 18 - "src/services/api.ts"
Cohesion: 0.10
Nodes (23): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, SystemSettingsPage (+15 more)
### Community 19 - "devDependencies"
Cohesion: 0.09
Nodes (23): devDependencies, eslint, @eslint/eslintrc, @eslint/js, jest, @nestjs/schematics, @nestjs/testing, source-map-support (+15 more)
Cohesion: 0.12
Nodes (21): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, ApiErrorPayload (+13 more)
### Community 20 - "BE-001"
Cohesion: 0.06
Nodes (32): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, BE-001, Category, Completion Statement, Confidence (+24 more)
### Community 21 - "Roles"
Cohesion: 0.06
Nodes (33): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+25 more)
Cohesion: 0.08
Nodes (25): Roles(), SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type (+17 more)
### Community 22 - "FE-001"
Cohesion: 0.06
@ -436,17 +461,17 @@ Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternati
Cohesion: 0.06
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
### Community 29 - "wholesale.controller.ts"
### Community 29 - "WholesaleApplyDto"
Cohesion: 0.10
Nodes (22): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+14 more)
Nodes (20): ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, WholesaleApplyDto, ApiBearerAuth, ApiOperation (+12 more)
### Community 30 - "main.ts"
Cohesion: 0.14
Nodes (9): CustomHttpExceptionFilter, Catch, PrismaExceptionFilter, Catch, DecimalInterceptor, Injectable, ApiErrorResponse, ErrorDetailField (+1 more)
### Community 31 - "admin.module.ts"
Cohesion: 0.12
Nodes (12): BlogQuery, CategoryQuery, PetQuery, SslCertInfo, JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser (+4 more)
### Community 31 - "JwtAuthGuard"
Cohesion: 0.14
Nodes (8): JwtAuthGuard, Injectable, B2BWholesaleOrderItem, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
### Community 32 - "ZibalService"
Cohesion: 0.14
@ -457,24 +482,24 @@ Cohesion: 0.07
Nodes (25): اجرای بک‌اند, اجرای فرانت‌اند, اجرای پروژه در سرور با PM2, برای راه‌اندازی بک‌اند:, برای راه‌اندازی فرانت‌اند Next.js:, بیلد کردن پروژه (Building), ذخیره پروسه‌ها تا پس از ری‌استارت سرور قطع نشوند:, راه‌اندازی و انتشار سیستم (Setup & Deployment) (+17 more)
### Community 34 - "CategoriesController"
Cohesion: 0.10
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
Cohesion: 0.09
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
### Community 35 - "B2BService"
Cohesion: 0.13
Nodes (15): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+7 more)
Cohesion: 0.14
Nodes (14): B2BController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Param (+6 more)
### Community 36 - "What You Must Do When Invoked"
Cohesion: 0.07
Nodes (26): For /graphify add and --watch, For /graphify query, For the commit hook and native CLAUDE.md integration, For --update and --cluster-only, /graphify, Honesty Rules, Interpreter guard for subcommands, Part A - Structural extraction for code files (+18 more)
### Community 37 - "toPersian"
Cohesion: 0.13
Nodes (23): VerifyContent(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), CartDrawer(), LoginModal() (+15 more)
### Community 37 - "userStore.ts"
Cohesion: 0.09
Nodes (32): ClientLayout(), ArchiveProductCard(), AuthModal(), AuthModalProps, extractOtpFromText(), B2BPortal(), CartDrawer(), CheckoutPage() (+24 more)
### Community 38 - "UsersService"
Cohesion: 0.12
Nodes (18): ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+10 more)
Cohesion: 0.06
Nodes (42): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+34 more)
### Community 39 - "What You Must Do When Invoked"
Cohesion: 0.07
@ -484,17 +509,17 @@ Nodes (26): For /graphify add and --watch, For /graphify query, For the commit h
Cohesion: 0.13
Nodes (14): SslController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get, Post (+6 more)
### Community 41 - "ProductPage.tsx"
Cohesion: 0.12
Nodes (14): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore, ProductReviews() (+6 more)
### Community 41 - "PodcastPlayerModal.tsx"
Cohesion: 0.40
Nodes (3): PLAYBACK_RATES, PodcastPlayerModal(), PodcastPlayerModalProps
### Community 42 - "IngredientsService"
Cohesion: 0.13
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 43 - "admin.service.ts"
Cohesion: 0.09
Nodes (14): CouponTargetInput, PaginationQuery, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, normalizeMobile() (+6 more)
### Community 43 - "AuthService"
Cohesion: 0.18
Nodes (3): AuthService, Injectable, normalizeMobile()
### Community 44 - "MediaController"
Cohesion: 0.11
@ -505,7 +530,7 @@ Cohesion: 0.13
Nodes (11): Pagination(), PaginationProps, Pet, GatewayHealth, Stats, Transaction, ProductItem, WikiTerm (+3 more)
### Community 47 - "OrdersController"
Cohesion: 0.14
Cohesion: 0.13
Nodes (16): OrdersController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags (+8 more)
### Community 48 - "PrescriptionsService"
@ -529,8 +554,8 @@ Cohesion: 0.13
Nodes (11): ContactController, Body, Controller, Get, Param, Post, Put, Query (+3 more)
### Community 53 - "PaymentController"
Cohesion: 0.20
Nodes (17): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+9 more)
Cohesion: 0.25
Nodes (13): PaymentController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+5 more)
### Community 54 - "compilerOptions"
Cohesion: 0.06
@ -544,45 +569,45 @@ Nodes (20): Badge(), BadgeProps, BadgeVariant, variantStyles, ImagePreviewModal(
Cohesion: 0.09
Nodes (22): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx, lib, module, moduleDetection, moduleResolution (+14 more)
### Community 57 - "PetsController"
Cohesion: 0.11
Nodes (13): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+5 more)
### Community 57 - "admin.module.ts"
Cohesion: 0.06
Nodes (23): AdminModule, Module, BlogQuery, BlogsService, Injectable, PetsController, ApiBearerAuth, ApiOperation (+15 more)
### Community 58 - "PaginationDto"
Cohesion: 0.09
Nodes (22): PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional, IsString, Min (+14 more)
Cohesion: 0.07
Nodes (24): PaginationDto, SortOrder, ApiPropertyOptional, IsEnum, IsInt, IsOptional, IsString, Min (+16 more)
### Community 59 - "dependencies"
Cohesion: 0.05
Nodes (41): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, helmet, ioredis, js-yaml (+33 more)
Cohesion: 0.10
Nodes (21): dependencies, bcrypt, class-transformer, class-validator, ioredis, @nestjs/common, @nestjs/passport, @nestjs/platform-express (+13 more)
### Community 60 - "compilerOptions"
Cohesion: 0.10
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
### Community 61 - "HomeClient.tsx"
Cohesion: 0.11
Nodes (21): HomeClient(), HomeClientProps, getHomeData(), Home(), metadata, metadata, ArchivePage(), CATEGORY_MAP (+13 more)
Cohesion: 0.12
Nodes (20): HomeClient(), HomeClientProps, getHomeData(), Home(), metadata, metadata, ArchivePage(), CATEGORY_MAP (+12 more)
### Community 62 - "BlogsController"
Cohesion: 0.13
Nodes (15): BlogsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+7 more)
### Community 63 - "auth.controller.ts"
Cohesion: 0.06
Nodes (42): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+34 more)
### Community 63 - "AuthController"
Cohesion: 0.27
Nodes (12): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse, ApiOperation, ApiTags, Body, Controller (+4 more)
### Community 64 - "users.service.ts"
### Community 64 - "BannersService"
Cohesion: 0.13
Nodes (14): AddressDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, ApiPropertyOptional (+6 more)
Nodes (15): BannersController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+7 more)
### Community 65 - "Required Review Group Closures"
Cohesion: 0.10
Nodes (19): 10. Orders Backend, 11. Settings & Administrative Backend, 12. Prisma Schema, Migrations & Seed, 13. Redis & Temporary Auth State, 14. Unit & E2E Tests, 15. Docker, NGINX, Prometheus & Deployment Config, 16. Documentation & OpenAPI Artifacts, 1. Storefront Shell & Routing (+11 more)
### Community 66 - "Coupons.tsx"
Cohesion: 0.12
Nodes (14): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+6 more)
Cohesion: 0.10
Nodes (15): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+7 more)
### Community 67 - "Operational Rules & Boundaries"
Cohesion: 0.11
@ -593,21 +618,25 @@ Cohesion: 0.11
Nodes (18): 1. Framework-Aware Analysis, 2. DOM & Semantic Structure Analysis, 3. Accessibility Compliance, 4. Responsive Layout Verification, 5. Fallback Inspection Mode, 6. Defect Routing Protocol, 7. Forbidden Actions, Expected JSON Output Schema (+10 more)
### Community 69 - "WikiController"
Cohesion: 0.09
Nodes (16): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+8 more)
Cohesion: 0.13
Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete, Get (+6 more)
### Community 70 - "auth.module.ts"
Cohesion: 0.17
Nodes (10): DEFAULT_JWT_REFRESH_SECRET, DEFAULT_JWT_SECRET, getJwtSecret(), AuthModule, Module, JwtPayload, JwtStrategy, Injectable (+2 more)
### Community 70 - "ApiOperation"
Cohesion: 0.15
Nodes (8): ApiOperation, ApiQuery, Get, Query, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
### Community 71 - "PetsController"
Cohesion: 0.05
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
### Community 71 - "pets/pets.controller.ts"
Cohesion: 0.16
Nodes (13): CreatePetDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional, IsString (+5 more)
### Community 72 - "seo.module.ts"
Cohesion: 0.16
Nodes (10): SeoController, ApiOperation, ApiTags, Controller, Get, Param, SeoModule, Module (+2 more)
### Community 73 - "admin.service.ts"
Cohesion: 0.16
Nodes (13): CouponTargetInput, PaginationQuery, CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber (+5 more)
### Community 74 - "🏢 AI Software Agency — Master Orchestration Protocol v3"
Cohesion: 0.11
Nodes (17): Activation, Agent Directory Reference, 🏢 AI Software Agency — Master Orchestration Protocol v3, Phase 1: Specialist Review (All agents read, none write code yet), Phase 2: Master Synthesis (02_product_manager in SYNTHESIS mode), Phase 3: Execution (Same as always), PIPELINE A — New Project (GREENFIELD), PIPELINE B — Review & Improve Existing Project (REVIEW_AND_PLAN) ★ (+9 more)
@ -650,7 +679,7 @@ Nodes (13): Skeleton(), getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderI
### Community 84 - "devDependencies"
Cohesion: 0.11
Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, globals, postcss, @types/node (+11 more)
Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, postcss, tailwindcss, @types/node (+11 more)
### Community 85 - "seed-products.ts"
Cohesion: 0.17
@ -672,9 +701,9 @@ Nodes (14): 10. Dependency & Wave Adjustments, 11. Acceptance Criteria Refinemen
Cohesion: 0.10
Nodes (21): dependencies, axios, lucide-react, react, react-dom, react-hot-toast, react-router-dom, recharts (+13 more)
### Community 90 - "SafeImage.tsx"
Cohesion: 0.14
Nodes (13): ProductDetailModalProps, SafeImage(), SafeImageProps, DisplayVideoItem, FALLBACK_VIDEOS, TestimonialItem, VetGallery(), PLAYBACK_RATES (+5 more)
### Community 90 - "ProductPage.tsx"
Cohesion: 0.07
Nodes (25): ProductDetailModalProps, PLAYBACK_RATES, PodcastInlinePlayer(), PodcastInlinePlayerProps, CalculatorState, ICON_MAP, ProductPage(), useCalculatorStore (+17 more)
### Community 91 - "compilerOptions"
Cohesion: 0.06
@ -704,10 +733,6 @@ Nodes (8): exclude, extends, dist, node_modules, prisma, **/*spec.ts, test, ./ts
Cohesion: 0.15
Nodes (13): jest, collectCoverageFrom, coverageDirectory, moduleFileExtensions, rootDir, testEnvironment, testRegex, transform (+5 more)
### Community 98 - "OrdersService"
Cohesion: 0.20
Nodes (4): OrdersModule, Module, OrdersService, Injectable
### Community 99 - "Comprehensive Change Log"
Cohesion: 0.15
Nodes (12): 10. `TASK-VERIFY-001`, 1. `TASK-SEC-001`, 2. `TASK-SEC-002`, 3. `TASK-SEC-003`, 4. `TASK-FIN-001`, 5. `TASK-BUILD-001`, 6. `TASK-AUTH-001`, 7. `TASK-FE-001` (+4 more)
@ -720,17 +745,17 @@ Nodes (11): 1. Detect Test Runner from Tech Stack, 2. Execution Output Capture (
Cohesion: 0.22
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
### Community 102 - "SmsLogQueryDto"
Cohesion: 0.25
Nodes (7): SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 102 - ".update"
Cohesion: 0.24
Nodes (11): ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Delete, Get, Param, Patch (+3 more)
### Community 103 - "ZibalCallbackQueryDto"
Cohesion: 0.40
Nodes (4): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto
### Community 103 - ".handleZibalCallback"
Cohesion: 0.24
Nodes (8): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, Query, Res, Headers, Ip
### Community 104 - "ValidateCouponDto"
Cohesion: 0.50
Nodes (4): IsNotEmpty, IsNumber, IsString, ValidateCouponDto
### Community 104 - "auth.service.ts"
Cohesion: 0.13
Nodes (14): AdminLoginInput, LoginInput, RegisterInput, SendOtpDto, ApiProperty, IsNotEmpty, IsString, Matches (+6 more)
### Community 105 - "1. Summary of Integrity Repairs Performed"
Cohesion: 0.17
@ -752,6 +777,10 @@ Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment St
Cohesion: 0.29
Nodes (5): AppController, Controller, Get, AppService, Injectable
### Community 111 - "auth.controller.ts"
Cohesion: 0.16
Nodes (11): AdminLoginDto, ApiProperty, IsEmail, IsNotEmpty, IsString, MinLength, LoginDto, ApiProperty (+3 more)
### Community 113 - "Vazirmatn Changelog"
Cohesion: 0.18
Nodes (10): 32.0.0, 32.1, 32.101, 32.102, 33.000, 33.001, 33.002, 33.003 (+2 more)
@ -776,6 +805,10 @@ Nodes (9): compilerOptions, esModuleInterop, module, moduleResolution, skipLibCh
Cohesion: 0.20
Nodes (9): Compile and run the project, Deployment, Description, License, Project setup, Resources, Run tests, Stay in touch (+1 more)
### Community 119 - "devDependencies"
Cohesion: 0.22
Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more)
### Community 120 - "Repository Map"
Cohesion: 0.20
Nodes (9): 1. Active Customer Storefront: React 19 + Vite Application, 2. Active Backend Service: NestJS Application, 3. Excluded Placeholder / Non-Auditable Directories, Active Applications & Non-Auditable Scopes, Documentation Governance, Important Configuration & Infrastructure Files, Mandatory Global Audit Exclusions, Repository Map (+1 more)
@ -841,7 +874,7 @@ Cohesion: 0.25
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
### Community 137 - "AdminTransactionFilterDto"
Cohesion: 0.22
Cohesion: 0.25
Nodes (7): AdminTransactionFilterDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional, IsString, Type
### Community 138 - "InitiatePaymentDto"
@ -856,13 +889,17 @@ Nodes (7): Active Core Applications, Current Architecture, Evidence-Based Status
Cohesion: 0.29
Nodes (6): 1. Executive Vision, 2. Target Audience, 3. Functional Requirements, 4. Non-Functional Requirements (Performance, Security), 5. Epic / Feature Breakdown, Product Requirement Document (PRD)
### Community 141 - "WikiController"
Cohesion: 0.21
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
### Community 144 - "Baseline Command Plan & Reconciled Command History"
Cohesion: 0.29
Nodes (6): Attempted Command Execution Log, Backend `backend/package.json` Scripts, Baseline Command Plan & Reconciled Command History, Package Scripts Safety Analysis, Permitted Safe Checks for Phase 2, Root `package.json` Scripts
### Community 145 - "Spinner.tsx"
Cohesion: 0.10
Nodes (15): Spinner(), ProductReview, Reviews(), toPersianDigits(), PatternItem, SmsConfigState, SmsLogItem, SmsLogStats (+7 more)
Nodes (16): Spinner(), ProductReview, Reviews(), toPersianDigits(), PatternItem, SmsConfigState, SmsLogItem, SmsLogStats (+8 more)
### Community 147 - "with-vpn.sh"
Cohesion: 0.62
@ -956,6 +993,10 @@ Nodes (3): Architectural Overview, Critical Review Findings & Required Enhanceme
Cohesion: 0.50
Nodes (3): Overview & Content Foundation, SEO & Content Requirements, 🚀 SEO & Content Strategy Review (12_seo_content)
### Community 174 - "Body"
Cohesion: 0.24
Nodes (3): Body, Post, CouponInput
### Community 180 - "graphify reference: add a URL and watch a folder"
Cohesion: 0.50
Nodes (3): For /graphify add, For --watch, graphify reference: add a URL and watch a folder
@ -996,33 +1037,61 @@ Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
Cohesion: 0.67
Nodes (3): ADR-AUTH-001: Admin Panel Authentication Architecture & Token Management, Master Task Backlog (Phase 3.3), Phase 3 Master Execution Plan
### Community 214 - "AppModule"
Cohesion: 0.12
Nodes (7): ApiExcludeController, AppModule, Module, MetricsController, Controller, Get, Res
### Community 212 - "ProductDto"
Cohesion: 0.22
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
### Community 213 - "PetsController"
Cohesion: 0.18
Nodes (9): PetsController, ApiBadRequestResponse, ApiBearerAuth, ApiCreatedResponse, ApiTags, Controller, UploadedFile, UseGuards (+1 more)
### Community 214 - "RedisService"
Cohesion: 0.14
Nodes (4): AppModule, Module, RedisService, Injectable
### Community 215 - "WikiService"
Cohesion: 0.22
Nodes (3): Injectable, WikiQuery, WikiService
### Community 223 - "Shabnam Font README"
Cohesion: 0.67
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
### Community 239 - "RegisterDto"
Cohesion: 0.22
Nodes (8): RegisterDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsOptional, IsString, MinLength
### Community 243 - "MetricsController"
Cohesion: 0.29
Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
### Community 289 - "CreateHealthLogDto"
Cohesion: 0.29
Nodes (6): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
### Community 290 - "CreateReminderDto"
Cohesion: 0.29
Nodes (6): CreateReminderDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
## Knowledge Gaps
- **1237 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1232 more)
- **1239 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1234 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **98 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **117 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `Roles()` connect `Roles` to `CmsController`, `B2BService`, `reviews.controller.ts`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PaymentController`, `wholesale.controller.ts`, `admin.module.ts`?**
- **Why does `Roles()` connect `Roles` to `BannersService`, `CmsController`, `B2BService`, `CreateReviewDto`, `tickets.controller.ts`, `SslController`, `IngredientsService`, `ProductsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PaymentController`, `WholesaleApplyDto`, `JwtAuthGuard`?**
_High betweenness centrality (0.048) - this node is a cross-community bridge._
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `PetsController`, `BlogsController`, `HomeController`, `OrdersController`, `ProductsService`, `PaginationDto`, `auth.controller.ts`?**
_High betweenness centrality (0.038) - this node is a cross-community bridge._
- **Why does `PrismaService` connect `PrismaService` to `CmsController`, `app.module.ts`, `reviews.controller.ts`, `tickets.controller.ts`, `ReportsController`, `DoctorsService`, `BlogsController`, `ProductsService`, `CreateVideoDto`, `Roles`, `wholesale.controller.ts`, `admin.module.ts`, `ZibalService`, `CategoriesController`, `B2BService`, `UsersService`, `IngredientsService`, `admin.service.ts`, `MediaController`, `SmsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `PetsController`, `PaginationDto`, `users.service.ts`, `WikiController`, `PetsController`, `seo.module.ts`, `BlogsService`, `HomeController`, `zibal.service.ts`, `AppModule`, `OrdersService`?**
- **Why does `ApiResponse` connect `src/services/api.ts` to `UsersService`, `WikiController`, `BlogsController`, `HomeController`, `OrdersController`, `ProductsService`, `PetsController`, `AuthController`?**
_High betweenness centrality (0.037) - this node is a cross-community bridge._
- **Why does `PrismaService` connect `PrismaService` to `PetsService`, `CmsController`, `app.module.ts`, `CreateReviewDto`, `tickets.controller.ts`, `ReportsController`, `DoctorsService`, `BlogsController`, `ProductsService`, `CreateVideoDto`, `Roles`, `WholesaleApplyDto`, `JwtAuthGuard`, `ZibalService`, `CategoriesController`, `B2BService`, `UsersService`, `IngredientsService`, `AuthService`, `MediaController`, `SmsService`, `PrescriptionsService`, `SmartAdvisorService`, `TestimonialsService`, `ContactService`, `admin.module.ts`, `PaginationDto`, `BannersService`, `pets/pets.controller.ts`, `seo.module.ts`, `admin.service.ts`, `HomeController`, `zibal.service.ts`, `RedisService`, `WikiService`, `OrdersService`, `auth.service.ts`, `AdminService`, `MetricsController`?**
_High betweenness centrality (0.024) - this node is a cross-community bridge._
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
_1237 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `AdminService` be split into smaller, more focused modules?**
_Cohesion score 0.050331731869137496 - nodes in this community are weakly interconnected._
- **Should `ProductService` be split into smaller, more focused modules?**
_Cohesion score 0.06390977443609022 - nodes in this community are weakly interconnected._
_1239 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `AdminController` be split into smaller, more focused modules?**
_Cohesion score 0.13043478260869565 - nodes in this community are weakly interconnected._
- **Should `productService.ts` be split into smaller, more focused modules?**
_Cohesion score 0.05888376856118792 - nodes in this community are weakly interconnected._
- **Should `CmsController` be split into smaller, more focused modules?**
_Cohesion score 0.0899854862119013 - nodes in this community are weakly interconnected._

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# Graph Report - canina (2026-08-18)
## Corpus Check
- 511 files · ~734,432 words
- 511 files · ~734,434 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
@ -10,7 +10,7 @@
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `95d79518`
- Built from commit: `36e382cf`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@ -34,7 +34,7 @@
- lib/services/api.ts
- CreateVideoDto
- src/services/api.ts
- eslint
- eslint-plugin-prettier
- BE-001
- Roles
- FE-001
@ -312,7 +312,7 @@
- tsconfig-paths
- @types/bcryptjs
- typescript-eslint
- globals
- tailwindcss
## God Nodes (most connected - your core abstractions)
1. `PrismaService` - 81 edges
@ -422,8 +422,8 @@ Cohesion: 0.09
Nodes (24): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+16 more)
### Community 18 - "src/services/api.ts"
Cohesion: 0.12
Nodes (21): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, ApiErrorPayload (+13 more)
Cohesion: 0.10
Nodes (23): ProtectedRoute(), SEARCHABLE_PAGES, Topbar(), TopbarProps, Login(), B2BManager, SmartAdvisorManager, SystemSettingsPage (+15 more)
### Community 20 - "BE-001"
Cohesion: 0.06
@ -606,8 +606,8 @@ Cohesion: 0.10
Nodes (19): 10. Orders Backend, 11. Settings & Administrative Backend, 12. Prisma Schema, Migrations & Seed, 13. Redis & Temporary Auth State, 14. Unit & E2E Tests, 15. Docker, NGINX, Prometheus & Deployment Config, 16. Documentation & OpenAPI Artifacts, 1. Storefront Shell & Routing (+11 more)
### Community 66 - "Coupons.tsx"
Cohesion: 0.10
Nodes (15): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+7 more)
Cohesion: 0.12
Nodes (14): formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData, CouponModalProps, CouponTarget (+6 more)
### Community 67 - "Operational Rules & Boundaries"
Cohesion: 0.11
@ -679,7 +679,7 @@ Nodes (13): Skeleton(), getPaymentMethodLabel(), Order, ORDER_STATUS_MAP, OrderI
### Community 84 - "devDependencies"
Cohesion: 0.11
Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, postcss, tailwindcss, @types/node (+11 more)
Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, globals, postcss, @types/node (+11 more)
### Community 85 - "seed-products.ts"
Cohesion: 0.17
@ -807,7 +807,7 @@ Nodes (9): Compile and run the project, Deployment, Description, License, Projec
### Community 119 - "devDependencies"
Cohesion: 0.22
Nodes (9): devDependencies, eslint-plugin-prettier, @types/passport-jwt, @types/supertest, typescript, typescript, eslint-plugin-prettier, @types/passport-jwt (+1 more)
Nodes (9): devDependencies, eslint, @types/passport-jwt, @types/supertest, typescript, eslint, typescript, @types/passport-jwt (+1 more)
### Community 120 - "Repository Map"
Cohesion: 0.20
@ -899,7 +899,7 @@ Nodes (6): Attempted Command Execution Log, Backend `backend/package.json` Scrip
### Community 145 - "Spinner.tsx"
Cohesion: 0.10
Nodes (16): Spinner(), ProductReview, Reviews(), toPersianDigits(), PatternItem, SmsConfigState, SmsLogItem, SmsLogStats (+8 more)
Nodes (15): Spinner(), ProductReview, Reviews(), toPersianDigits(), PatternItem, SmsConfigState, SmsLogItem, SmsLogStats (+7 more)
### Community 147 - "with-vpn.sh"
Cohesion: 0.62

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1019,19 +1019,6 @@
"community_name": "Spinner.tsx",
"norm_label": "seosettings"
},
{
"label": "SystemSettings",
"file_type": "code",
"source_file": "frontend/admin-panel/src/types/admin.ts",
"source_location": "L179",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_types_admin_systemsettings",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "systemsettings"
},
{
"label": "GetProductsDto",
"file_type": "code",
@ -1552,6 +1539,19 @@
"community_name": "src/services/api.ts",
"norm_label": "smartadvisorrule"
},
{
"label": "SystemSettings",
"file_type": "code",
"source_file": "frontend/admin-panel/src/types/admin.ts",
"source_location": "L179",
"_callable": true,
"_callable_class": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_types_admin_systemsettings",
"community": 18,
"community_name": "src/services/api.ts",
"norm_label": "systemsettings"
},
{
"label": "VerifyOtpPayload",
"file_type": "code",
@ -6264,6 +6264,18 @@
"community_name": "Spinner.tsx",
"norm_label": "seosettingspage()"
},
{
"label": "Settings()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Settings.tsx",
"source_location": "L9",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_settings_settings",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "settings()"
},
{
"label": "SmsSettingsPage()",
"file_type": "code",
@ -6288,18 +6300,6 @@
"community_name": "Spinner.tsx",
"norm_label": "sslsettingspage()"
},
{
"label": "SystemSettingsPage()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/SystemSettingsPage.tsx",
"source_location": "L8",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_systemsettingspage_systemsettingspage",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "systemsettingspage()"
},
{
"label": "ErrorBoundary()",
"file_type": "code",
@ -7176,6 +7176,18 @@
"community_name": "src/services/api.ts",
"norm_label": "smartadvisormanager()"
},
{
"label": "SystemSettingsPage()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/SystemSettingsPage.tsx",
"source_location": "L8",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_systemsettingspage_systemsettingspage",
"community": 18,
"community_name": "src/services/api.ts",
"norm_label": "systemsettingspage()"
},
{
"label": "processQueue()",
"file_type": "code",
@ -12748,7 +12760,7 @@
"label": "Products()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L61",
"source_location": "L62",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_products_products",
@ -12756,18 +12768,6 @@
"community_name": "Coupons.tsx",
"norm_label": "products()"
},
{
"label": "Settings()",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Settings.tsx",
"source_location": "L9",
"_callable": true,
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_settings_settings",
"community": 66,
"community_name": "Coupons.tsx",
"norm_label": "settings()"
},
{
"label": ".constructor()",
"file_type": "code",
@ -16608,15 +16608,15 @@
"norm_label": "devdependencies"
},
{
"label": "eslint-plugin-prettier",
"label": "eslint",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L62",
"source_location": "L60",
"_origin": "ast",
"id": "backend_package_devdependencies_eslint_plugin_prettier",
"id": "backend_package_devdependencies_eslint",
"community": 119,
"community_name": "devDependencies",
"norm_label": "eslint-plugin-prettier"
"norm_label": "eslint"
},
{
"label": "@types/passport-jwt",
@ -16651,6 +16651,17 @@
"community_name": "devDependencies",
"norm_label": "typescript"
},
{
"label": "eslint",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L60",
"_origin": "ast",
"id": "backend_package_json_eslint",
"community": 119,
"community_name": "devDependencies",
"norm_label": "eslint"
},
{
"label": "typescript",
"file_type": "concept",
@ -16662,17 +16673,6 @@
"community_name": "devDependencies",
"norm_label": "typescript"
},
{
"label": "eslint-plugin-prettier",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L62",
"_origin": "ast",
"id": "eslint_plugin_prettier",
"community": 119,
"community_name": "devDependencies",
"norm_label": "eslint-plugin-prettier"
},
{
"label": "@types/passport-jwt",
"file_type": "concept",
@ -19170,6 +19170,17 @@
"community_name": "Spinner.tsx",
"norm_label": "seosettingspage.tsx"
},
{
"label": "Settings.tsx",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Settings.tsx",
"source_location": "L1",
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_settings",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "settings.tsx"
},
{
"label": "SmsSettingsPage.tsx",
"file_type": "code",
@ -19192,17 +19203,6 @@
"community_name": "Spinner.tsx",
"norm_label": "sslsettingspage.tsx"
},
{
"label": "SystemSettingsPage.tsx",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/SystemSettingsPage.tsx",
"source_location": "L1",
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_systemsettingspage",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "systemsettingspage.tsx"
},
{
"label": "Reviews",
"file_type": "code",
@ -19225,6 +19225,17 @@
"community_name": "Spinner.tsx",
"norm_label": "seosettingspage"
},
{
"label": "Settings",
"file_type": "code",
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
"source_location": "L15",
"_origin": "ast",
"id": "frontend_admin_panel_src_routes_adminroutes_settings",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "settings"
},
{
"label": "SmsSettingsPage",
"file_type": "code",
@ -19247,17 +19258,6 @@
"community_name": "Spinner.tsx",
"norm_label": "sslsettingspage"
},
{
"label": "SystemSettingsPage",
"file_type": "code",
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
"source_location": "L35",
"_origin": "ast",
"id": "frontend_admin_panel_src_routes_adminroutes_systemsettingspage",
"community": 145,
"community_name": "Spinner.tsx",
"norm_label": "systemsettingspage"
},
{
"label": "error.tsx",
"file_type": "code",
@ -21376,6 +21376,17 @@
"community_name": "src/services/api.ts",
"norm_label": "smartadvisormanager.tsx"
},
{
"label": "SystemSettingsPage.tsx",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/SystemSettingsPage.tsx",
"source_location": "L1",
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_systemsettingspage",
"community": 18,
"community_name": "src/services/api.ts",
"norm_label": "systemsettingspage.tsx"
},
{
"label": "B2BManager",
"file_type": "code",
@ -21398,6 +21409,17 @@
"community_name": "src/services/api.ts",
"norm_label": "smartadvisormanager"
},
{
"label": "SystemSettingsPage",
"file_type": "code",
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
"source_location": "L35",
"_origin": "ast",
"id": "frontend_admin_panel_src_routes_adminroutes_systemsettingspage",
"community": 18,
"community_name": "src/services/api.ts",
"norm_label": "systemsettingspage"
},
{
"label": "src/services/api.ts",
"file_type": "code",
@ -21795,26 +21817,26 @@
"norm_label": "@types/express"
},
{
"label": "eslint",
"label": "eslint-plugin-prettier",
"file_type": "code",
"source_file": "backend/package.json",
"source_location": "L60",
"source_location": "L62",
"_origin": "ast",
"id": "backend_package_devdependencies_eslint",
"id": "backend_package_devdependencies_eslint_plugin_prettier",
"community": 19,
"community_name": "eslint",
"norm_label": "eslint"
"community_name": "eslint-plugin-prettier",
"norm_label": "eslint-plugin-prettier"
},
{
"label": "eslint",
"label": "eslint-plugin-prettier",
"file_type": "concept",
"source_file": "backend/package.json",
"source_location": "L60",
"source_location": "L62",
"_origin": "ast",
"id": "backend_package_json_eslint",
"id": "eslint_plugin_prettier",
"community": 19,
"community_name": "eslint",
"norm_label": "eslint"
"community_name": "eslint-plugin-prettier",
"norm_label": "eslint-plugin-prettier"
},
{
"label": "deploy.sh",
@ -28713,26 +28735,26 @@
"norm_label": "typescript-eslint"
},
{
"label": "globals",
"label": "tailwindcss",
"file_type": "code",
"source_file": "frontend/admin-panel/package.json",
"source_location": "L35",
"source_location": "L37",
"_origin": "ast",
"id": "frontend_admin_panel_package_devdependencies_globals",
"id": "frontend_admin_panel_package_devdependencies_tailwindcss",
"community": 312,
"community_name": "globals",
"norm_label": "globals"
"community_name": "tailwindcss",
"norm_label": "tailwindcss"
},
{
"label": "globals",
"label": "tailwindcss",
"file_type": "concept",
"source_file": "frontend/admin-panel/package.json",
"source_location": "L35",
"source_location": "L37",
"_origin": "ast",
"id": "frontend_admin_panel_package_json_globals",
"id": "frontend_admin_panel_package_json_tailwindcss",
"community": 312,
"community_name": "globals",
"norm_label": "globals"
"community_name": "tailwindcss",
"norm_label": "tailwindcss"
},
{
"label": "Injectable",
@ -35642,17 +35664,6 @@
"community_name": "Coupons.tsx",
"norm_label": "products.tsx"
},
{
"label": "Settings.tsx",
"file_type": "code",
"source_file": "frontend/admin-panel/src/pages/Settings.tsx",
"source_location": "L1",
"_origin": "ast",
"id": "frontend_admin_panel_src_pages_settings",
"community": 66,
"community_name": "Coupons.tsx",
"norm_label": "settings.tsx"
},
{
"label": "Coupons",
"file_type": "code",
@ -35686,17 +35697,6 @@
"community_name": "Coupons.tsx",
"norm_label": "products"
},
{
"label": "Settings",
"file_type": "code",
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
"source_location": "L15",
"_origin": "ast",
"id": "frontend_admin_panel_src_routes_adminroutes_settings",
"community": 66,
"community_name": "Coupons.tsx",
"norm_label": "settings"
},
{
"label": "06_dev_frontend.md",
"file_type": "document",
@ -38458,6 +38458,17 @@
"community_name": "devDependencies",
"norm_label": "@eslint/js"
},
{
"label": "globals",
"file_type": "code",
"source_file": "frontend/admin-panel/package.json",
"source_location": "L35",
"_origin": "ast",
"id": "frontend_admin_panel_package_devdependencies_globals",
"community": 84,
"community_name": "devDependencies",
"norm_label": "globals"
},
{
"label": "postcss",
"file_type": "code",
@ -38469,17 +38480,6 @@
"community_name": "devDependencies",
"norm_label": "postcss"
},
{
"label": "tailwindcss",
"file_type": "code",
"source_file": "frontend/admin-panel/package.json",
"source_location": "L37",
"_origin": "ast",
"id": "frontend_admin_panel_package_devdependencies_tailwindcss",
"community": 84,
"community_name": "devDependencies",
"norm_label": "tailwindcss"
},
{
"label": "@types/node",
"file_type": "code",
@ -38558,15 +38558,15 @@
"norm_label": "@eslint/js"
},
{
"label": "tailwindcss",
"label": "globals",
"file_type": "concept",
"source_file": "frontend/admin-panel/package.json",
"source_location": "L37",
"source_location": "L35",
"_origin": "ast",
"id": "frontend_admin_panel_package_json_tailwindcss",
"id": "frontend_admin_panel_package_json_globals",
"community": 84,
"community_name": "devDependencies",
"norm_label": "tailwindcss"
"norm_label": "globals"
},
{
"label": "@types/node",
@ -98359,7 +98359,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "frontend/admin-panel/src/pages/Products.tsx",
"source_location": "L61",
"source_location": "L62",
"weight": 1.0,
"_origin": "ast",
"source": "frontend_admin_panel_src_pages_products",
@ -113076,5 +113076,5 @@
"source_file": "scripts/compose.prod.yml"
}
],
"built_at_commit": "95d79518e7d1479b88b7e39ebc79b0c0443200fc"
"built_at_commit": "36e382cf1620b17a37a409db9b9ef01d06188fba"
}

File diff suppressed because it is too large Load Diff