fix(storefront): remove inquiry price everywhere and fix mobile add to cart button visibility
This commit is contained in:
parent
8e4ee9849c
commit
ef0731ffac
@ -23,7 +23,7 @@ export const DEFAULT_UI_TEXTS: Record<string, string> = {
|
||||
PRESCRIPTION_UPLOAD_ENABLED: 'true',
|
||||
ORDER_DISABLED_TITLE: 'امکان ثبت سفارش آنلاین موقتاً غیرفعال است',
|
||||
ORDER_DISABLED_MESSAGE:
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
|
||||
// === Brand & Logo ===
|
||||
site_logo: '',
|
||||
|
||||
@ -492,7 +492,7 @@ export class SettingsService implements OnModuleInit {
|
||||
'امکان ثبت سفارش آنلاین موقتاً غیرفعال است',
|
||||
orderDisabledMessage:
|
||||
map.get('ORDER_DISABLED_MESSAGE') ||
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ export default function SystemSettingsPage() {
|
||||
PRESCRIPTION_UPLOAD_ENABLED: 'true',
|
||||
ORDER_DISABLED_TITLE: 'امکان ثبت سفارش آنلاین موقتاً غیرفعال است',
|
||||
ORDER_DISABLED_MESSAGE:
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
});
|
||||
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
@ -80,7 +80,7 @@ export default function SystemSettingsPage() {
|
||||
ORDER_DISABLED_TITLE: data.orderDisabledTitle || 'امکان ثبت سفارش آنلاین موقتاً غیرفعال است',
|
||||
ORDER_DISABLED_MESSAGE:
|
||||
data.orderDisabledMessage ||
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
'سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید.',
|
||||
});
|
||||
}
|
||||
})
|
||||
@ -363,7 +363,7 @@ export default function SystemSettingsPage() {
|
||||
ORDER_DISABLED_MESSAGE: e.target.value,
|
||||
})
|
||||
}
|
||||
placeholder="سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید."
|
||||
placeholder="سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید."
|
||||
className="w-full px-3.5 py-2 bg-white rounded-xl border border-purple-200 focus:border-purple-600 outline-none text-xs font-bold text-gray-900 resize-none"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -199,10 +199,8 @@ const ArchiveProductCard: React.FC<{ product: Product }> = ({ product }) => {
|
||||
|
||||
<div className="mt-auto flex items-center justify-between pt-4 border-t border-medical-gray-50 gap-2 flex-wrap sm:flex-nowrap">
|
||||
<div className="shrink-0">
|
||||
{showPrices ? (
|
||||
{showPrices && (
|
||||
<span className="font-black text-medical-gray-900 font-vazir text-sm sm:text-base whitespace-nowrap">{product.price}</span>
|
||||
) : (
|
||||
<span className="text-xs font-bold text-amber-600 bg-amber-50 px-2 py-1 rounded-md whitespace-nowrap inline-block">تماس جهت استعلام قیمت</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@ -376,10 +374,8 @@ const ArchiveProductListItem: React.FC<{ product: Product }> = ({ product }) =>
|
||||
{/* Price & Add to Cart */}
|
||||
<div className="mt-2 flex items-center justify-between pt-2 border-t border-medical-gray-100/70 gap-2 flex-wrap sm:flex-nowrap">
|
||||
<div className="shrink-0">
|
||||
{showPrices ? (
|
||||
{showPrices && (
|
||||
<span className="font-black text-medical-gray-900 font-vazir text-xs sm:text-sm whitespace-nowrap">{product.price}</span>
|
||||
) : (
|
||||
<span className="text-[10px] font-bold text-amber-600 bg-amber-50 px-1.5 py-0.5 rounded whitespace-nowrap inline-block">تماس جهت استعلام قیمت</span>
|
||||
)}
|
||||
</div>
|
||||
|
||||
|
||||
@ -183,6 +183,11 @@ export default function MobileBottomNav({
|
||||
}
|
||||
};
|
||||
|
||||
const isProductDetailPage = pathname.startsWith("/shop/") && pathname !== "/shop";
|
||||
if (isProductDetailPage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const totalCartItems = isMounted ? getTotalItems() : 0;
|
||||
const isHomeActive = pathname === "/";
|
||||
const isShopActive = pathname.startsWith("/shop") || activeSheet === "shop";
|
||||
|
||||
@ -1340,7 +1340,7 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
|
||||
className="w-full flex items-center justify-center gap-2 px-4 bg-canina-blue text-white rounded-2xl h-16 font-black text-sm hover:bg-canina-dark transition-all shadow-xl shadow-canina-blue/20 font-vazir"
|
||||
>
|
||||
<Phone className="w-5 h-5" />
|
||||
<span>مشاوره تخصصی و استعلام ({getText('contact_phone', '۰۲۱-۸۸۸۸۴۴۴۴')})</span>
|
||||
<span>مشاوره تخصصی با کارشناسان ({getText('contact_phone', '۰۲۱-۸۸۸۸۴۴۴۴')})</span>
|
||||
</a>
|
||||
</div>
|
||||
)
|
||||
@ -1548,7 +1548,7 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
|
||||
</AnimatePresence>
|
||||
|
||||
{/* Mobile Floating Sticky Bottom Buy Bar */}
|
||||
<div className="lg:hidden fixed bottom-0 left-0 right-0 z-40 bg-white border-t border-medical-gray-200 p-3 shadow-2xl flex items-center justify-between gap-3 font-vazir" dir="rtl">
|
||||
<div className="lg:hidden fixed bottom-0 left-0 right-0 z-50 bg-white/95 backdrop-blur-md border-t border-medical-gray-200 p-3 pb-safe shadow-2xl flex items-center justify-between gap-3 font-vazir" dir="rtl">
|
||||
{!isCatalogHidePrices ? (
|
||||
<div>
|
||||
<span className="text-[10px] text-medical-gray-400 font-bold block">قیمت نهایی</span>
|
||||
@ -1581,7 +1581,7 @@ export default function ProductPage({ productSlug }: { productSlug: string }) {
|
||||
className="flex-1 bg-canina-blue text-white py-2.5 px-3 rounded-xl font-black text-xs hover:bg-canina-dark transition-all flex items-center justify-center gap-1.5 shadow-md shadow-canina-blue/20 whitespace-nowrap"
|
||||
>
|
||||
<Phone className="w-4 h-4" />
|
||||
مشاوره و استعلام
|
||||
مشاوره تخصصی
|
||||
</a>
|
||||
)
|
||||
) : isOutOfStock ? (
|
||||
|
||||
@ -43,7 +43,7 @@ export function useCatalogMode() {
|
||||
|
||||
const orderDisabledMessage = getText(
|
||||
"ORDER_DISABLED_MESSAGE",
|
||||
"سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت استعلام قیمت و دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید."
|
||||
"سامانه در حال حاضر در حالت کاتالوگ قرار دارد. جهت دریافت مشاوره تخصصی میتوانید با کارشناسان ما تماس بگیرید."
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
"1": "app.module.ts",
|
||||
"2": "ApiKeysService",
|
||||
"3": "productService.ts",
|
||||
"4": "RevalidationService",
|
||||
"4": "HomeClient.tsx",
|
||||
"5": "CmsController",
|
||||
"6": "tickets.controller.ts",
|
||||
"7": "SmsSettingsPage.tsx",
|
||||
"8": "SmsService",
|
||||
"9": "devDependencies",
|
||||
"10": "reviews.controller.ts",
|
||||
"10": "CreateReviewDto",
|
||||
"11": "UsersService",
|
||||
"12": "index.ts",
|
||||
"13": "app-audit-verification.e2e-spec.js",
|
||||
@ -18,9 +18,9 @@
|
||||
"16": "DoctorQueryDto",
|
||||
"17": "schema.ts",
|
||||
"18": "JwtAuthGuard",
|
||||
"19": "admin.controller.ts",
|
||||
"19": "BulkPriceAdjustmentDto",
|
||||
"20": "CreateVideoDto",
|
||||
"21": "ClientLayout.tsx",
|
||||
"21": "useSettingsStore",
|
||||
"22": "AdminService",
|
||||
"23": "MenuService",
|
||||
"24": "BE-001",
|
||||
@ -59,14 +59,14 @@
|
||||
"57": "Role & Core Objective",
|
||||
"58": "MetricsController",
|
||||
"59": "compilerOptions",
|
||||
"60": "CreateUserDto",
|
||||
"60": "admin.controller.ts",
|
||||
"61": "ProductPage.tsx",
|
||||
"62": "admin.module.ts",
|
||||
"63": "dependencies",
|
||||
"64": "compilerOptions",
|
||||
"65": "admin.service.ts",
|
||||
"66": "AdminController",
|
||||
"67": "OrderService",
|
||||
"67": "OrdersController",
|
||||
"68": "components/Skeleton.tsx",
|
||||
"69": "Required Review Group Closures",
|
||||
"70": "compilerOptions",
|
||||
@ -75,7 +75,7 @@
|
||||
"73": "Operational Rules & Boundaries",
|
||||
"74": "WikiController",
|
||||
"75": "PetsController",
|
||||
"76": "ProductsService",
|
||||
"76": "RevalidationService",
|
||||
"77": "seo.module.ts",
|
||||
"78": "rss.xml/route.ts",
|
||||
"79": "🏢 AI Software Agency — Master Orchestration Protocol v3",
|
||||
@ -89,12 +89,12 @@
|
||||
"87": "dependencies",
|
||||
"88": "CreateEBankCheckoutDto",
|
||||
"89": "seed-products.ts",
|
||||
"90": "PetProfile.tsx",
|
||||
"90": "20260526145407_init/migration.sql",
|
||||
"91": "Reconciled Audit Roles & Assignments",
|
||||
"92": "OrdersService",
|
||||
"92": ".retryPayment",
|
||||
"93": "auth.controller.ts",
|
||||
"94": "Phase 3.1 — Human Review Preparation and Master Backlog Critique",
|
||||
"95": "getSeoConfig",
|
||||
"95": "wiki/[slug]/page.tsx",
|
||||
"96": "compilerOptions",
|
||||
"97": "AdminTransactionFilterDto",
|
||||
"98": "scripts",
|
||||
@ -112,7 +112,7 @@
|
||||
"110": "Operational Rules & Boundaries",
|
||||
"111": "Operational Rules & Boundaries",
|
||||
"112": "Operational Rules & Boundaries",
|
||||
"113": "useSettingsStore",
|
||||
"113": "lib/services/api.ts",
|
||||
"114": "AppService",
|
||||
"115": "MediaSelector.tsx",
|
||||
"116": "Vazirmatn Changelog",
|
||||
@ -121,14 +121,14 @@
|
||||
"119": "compilerOptions",
|
||||
"120": "compilerOptions",
|
||||
"121": "backend/README.md",
|
||||
"122": "ApiOperation",
|
||||
"122": "Body",
|
||||
"123": "auth.service.ts",
|
||||
"124": "Repository Map",
|
||||
"125": "validate_integrity.js",
|
||||
"126": "admin-panel/package.json",
|
||||
"127": "Sahel-Font",
|
||||
"128": "HomeController",
|
||||
"129": "PaymentService",
|
||||
"129": "WikiController",
|
||||
"130": "Sahel-Font",
|
||||
"131": "Role & Core Objective",
|
||||
"132": "orchestrate.py",
|
||||
@ -143,14 +143,14 @@
|
||||
"141": "application/package.json",
|
||||
"142": "start-dev.js",
|
||||
"143": "generate-openapi.js",
|
||||
"144": "getMediaUrl",
|
||||
"144": "SafeImage.tsx",
|
||||
"145": "Orders.tsx",
|
||||
"146": "System Discovery",
|
||||
"147": "torob.controller.ts",
|
||||
"148": "ProductDto",
|
||||
"149": "catalog/page.tsx",
|
||||
"149": "CreateOrderDto",
|
||||
"150": "Product Requirement Document (PRD)",
|
||||
"151": "@nestjs/jwt",
|
||||
"151": "OrdersService",
|
||||
"152": "@eslint/js",
|
||||
"153": "exclude",
|
||||
"154": "Baseline Command Plan & Reconciled Command History",
|
||||
@ -178,13 +178,13 @@
|
||||
"176": "uploads/[...path]/route.ts",
|
||||
"177": "eslint-config-prettier",
|
||||
"178": "نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina",
|
||||
"179": "eslint-config-next",
|
||||
"179": "CreateApiKeyDto",
|
||||
"180": "API Contract Specification",
|
||||
"181": "⚙️ Backend Technical Review (05_dev_backend)",
|
||||
"182": "🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)",
|
||||
"183": "🚀 SEO & Content Strategy Review (12_seo_content)",
|
||||
"184": "trust-seals/page.tsx",
|
||||
"185": "wiki/[slug]/page.tsx",
|
||||
"185": "CartDrawer.tsx",
|
||||
"186": "seed-ui-texts.ts",
|
||||
"187": "seed-wiki.ts",
|
||||
"188": "update-blog.dto.ts",
|
||||
@ -203,7 +203,7 @@
|
||||
"201": "deploy.sh",
|
||||
"202": "🔒 Security & Performance Review (09_devops_security)",
|
||||
"203": "👁️ UX & Persona Interface Review (08_visual_qa)",
|
||||
"204": "class-transformer",
|
||||
"204": "reviews.service.ts",
|
||||
"205": "prisma/scientificTerms.ts",
|
||||
"206": "seed-blogs.ts",
|
||||
"207": "seed-custom.ts",
|
||||
@ -219,20 +219,20 @@
|
||||
"217": "sync_honest_manifest.js",
|
||||
"218": "sync_manifest.js",
|
||||
"219": "FormField.tsx",
|
||||
"220": "globals",
|
||||
"220": "AdminQueryDto",
|
||||
"221": "Textarea.tsx",
|
||||
"222": "admin-panel/tsconfig.json",
|
||||
"223": "tailwindcss",
|
||||
"224": "typescript-eslint",
|
||||
"224": "wiki/page.tsx",
|
||||
"225": "next.config.ts",
|
||||
"226": "Shabnam Font README",
|
||||
"227": "AGENTS.md",
|
||||
"228": "rules/graphify.md",
|
||||
"229": ".agents/workflows/graphify.md",
|
||||
"230": "instructions.md",
|
||||
"231": "helmet",
|
||||
"232": "js-yaml",
|
||||
"233": "@nestjs/core",
|
||||
"231": "20260526160916_add_ui_texts_and_scientific_terms/migration.sql",
|
||||
"232": "@types/node",
|
||||
"233": "typescript",
|
||||
"234": "source-map-support",
|
||||
"235": "ts-loader",
|
||||
"236": "ts-node",
|
||||
@ -264,7 +264,7 @@
|
||||
"262": "User Logout API",
|
||||
"263": "generate-openapi.d.ts",
|
||||
"264": "@types/compression",
|
||||
"265": "@nestjs/cli",
|
||||
"265": "tailwindcss",
|
||||
"266": "@types/express",
|
||||
"267": "@types/jest",
|
||||
"268": "@types/multer",
|
||||
@ -293,35 +293,23 @@
|
||||
"292": "Production Docker Compose",
|
||||
"293": "Staging Docker Compose",
|
||||
"294": "ZibalService",
|
||||
"295": "@eslint/eslintrc",
|
||||
"296": "@nestjs/throttler",
|
||||
"297": "ZibalEBankService",
|
||||
"298": ".initiateOrderPayment",
|
||||
"299": "@tailwindcss/postcss",
|
||||
"300": "typescript",
|
||||
"301": "passport",
|
||||
"302": "typescript-eslint",
|
||||
"303": "@nestjs/schematics",
|
||||
"304": "reflect-metadata",
|
||||
"305": "swagger-ui-express",
|
||||
"306": "eslint-plugin-react-hooks",
|
||||
"309": "axios",
|
||||
"310": "tailwindcss",
|
||||
"311": "jest",
|
||||
"312": "@types/passport-jwt",
|
||||
"313": "@nestjs/swagger",
|
||||
"315": "typescript",
|
||||
"316": "@nestjs/testing",
|
||||
"317": "revalidate/route.ts",
|
||||
"318": "MaskableField.tsx",
|
||||
"319": "@tailwindcss/postcss",
|
||||
"320": "prettier",
|
||||
"321": "orders/page.tsx",
|
||||
"322": "pets/page.tsx",
|
||||
"323": "ts-jest",
|
||||
"324": "@types/js-yaml",
|
||||
"325": "@types/react-dom",
|
||||
"326": "@types/supertest",
|
||||
"327": "eslint-plugin-react-refresh",
|
||||
"331": "eslint-plugin-prettier"
|
||||
"327": "eslint-plugin-react-refresh"
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -264,6 +264,7 @@
|
||||
"262": "User Logout API",
|
||||
"263": "generate-openapi.d.ts",
|
||||
"264": "@types/compression",
|
||||
"265": "@nestjs/cli",
|
||||
"266": "@types/express",
|
||||
"267": "@types/jest",
|
||||
"268": "@types/multer",
|
||||
@ -322,6 +323,5 @@
|
||||
"325": "@types/react-dom",
|
||||
"326": "@types/supertest",
|
||||
"327": "eslint-plugin-react-refresh",
|
||||
"328": "eslint",
|
||||
"331": "eslint-plugin-prettier"
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
# Graph Report - canina (2026-09-13)
|
||||
|
||||
## Corpus Check
|
||||
- 609 files · ~1,125,068 words
|
||||
- 609 files · ~1,125,351 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
@ -275,6 +275,7 @@
|
||||
- User Login API
|
||||
- User Logout API
|
||||
- @types/compression
|
||||
- @nestjs/cli
|
||||
- @types/express
|
||||
- @types/jest
|
||||
- @types/multer
|
||||
@ -318,7 +319,6 @@
|
||||
- @types/react-dom
|
||||
- @types/supertest
|
||||
- eslint-plugin-react-refresh
|
||||
- eslint
|
||||
- eslint-plugin-prettier
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
@ -353,7 +353,7 @@
|
||||
## Communities (325 total, 115 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.23
|
||||
Cohesion: 0.24
|
||||
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
||||
|
||||
### Community 1 - "app.module.ts"
|
||||
@ -390,7 +390,7 @@ Nodes (27): SmsEventDefinition, SmsService, Injectable, SmsLogQueryDto, ApiPrope
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, @nestjs/cli, @types/bcryptjs, @types/node, typescript, @types/node, typescript, @nestjs/cli (+1 more)
|
||||
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||
|
||||
### Community 10 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
@ -545,8 +545,8 @@ Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "Button.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (15): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, FAQManager, PaymentGatewaysPage (+7 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (14): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, FAQManager, PaymentGatewaysPage (+6 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -765,8 +765,8 @@ 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)
|
||||
|
||||
### Community 104 - "Products.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (24): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+16 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (25): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+17 more)
|
||||
|
||||
### Community 105 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.17
|
||||
@ -1120,7 +1120,7 @@ Nodes (3): GET(), handleRevalidate(), POST()
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `Roles()` connect `Roles` to `PaymentService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `WholesaleService`, `SmsService`, `SslController`, `BannersService`, `ProductsService`, `reviews.controller.ts`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `ProductsService`, `reviews.controller.ts`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
_High betweenness centrality (0.074) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `HomeController`, `ApiKeysService`, `BlogsController`, `PetsController`, `ProductsService`, `UsersService`, `PaginationDto`, `OrdersService`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.061) - this node is a cross-community bridge._
|
||||
|
||||
@ -6115,6 +6115,18 @@
|
||||
"community_name": "Roles",
|
||||
"norm_label": ".liveinquiry()"
|
||||
},
|
||||
{
|
||||
"label": ".liveInquiryPost()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.controller.ts",
|
||||
"source_location": "L557",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_controller_paymentcontroller_liveinquirypost",
|
||||
"community": 0,
|
||||
"community_name": "Roles",
|
||||
"norm_label": ".liveinquirypost()"
|
||||
},
|
||||
{
|
||||
"label": ".manualReject()",
|
||||
"file_type": "code",
|
||||
@ -6151,18 +6163,6 @@
|
||||
"community_name": "Roles",
|
||||
"norm_label": ".reconcilepending()"
|
||||
},
|
||||
{
|
||||
"label": ".getTransaction()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L768",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_gettransaction",
|
||||
"community": 0,
|
||||
"community_name": "Roles",
|
||||
"norm_label": ".gettransaction()"
|
||||
},
|
||||
{
|
||||
"label": ".constructor()",
|
||||
"file_type": "code",
|
||||
@ -6379,6 +6379,18 @@
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "products()"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage()",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/pages/ShippingSettingsPage.tsx",
|
||||
"source_location": "L11",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_pages_shippingsettingspage_shippingsettingspage",
|
||||
"community": 104,
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "shippingsettingspage()"
|
||||
},
|
||||
{
|
||||
"label": "applyRounding()",
|
||||
"file_type": "code",
|
||||
@ -7855,18 +7867,6 @@
|
||||
"community_name": "HomeController",
|
||||
"norm_label": ".gethomedata()"
|
||||
},
|
||||
{
|
||||
"label": ".liveInquiryPost()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.controller.ts",
|
||||
"source_location": "L557",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_controller_paymentcontroller_liveinquirypost",
|
||||
"community": 129,
|
||||
"community_name": "PaymentService",
|
||||
"norm_label": ".liveinquirypost()"
|
||||
},
|
||||
{
|
||||
"label": ".adminLiveInquiry()",
|
||||
"file_type": "code",
|
||||
@ -7939,6 +7939,18 @@
|
||||
"community_name": "PaymentService",
|
||||
"norm_label": ".getadmintransactionstats()"
|
||||
},
|
||||
{
|
||||
"label": ".getTransaction()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/payment/payment.service.ts",
|
||||
"source_location": "L768",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_payment_payment_service_paymentservice_gettransaction",
|
||||
"community": 129,
|
||||
"community_name": "PaymentService",
|
||||
"norm_label": ".gettransaction()"
|
||||
},
|
||||
{
|
||||
"label": ".getTransactionByTrackId()",
|
||||
"file_type": "code",
|
||||
@ -8459,7 +8471,7 @@
|
||||
"label": "ArchivePage()",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L437",
|
||||
"source_location": "L446",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "frontend_application_components_archivepage_archivepage",
|
||||
@ -13747,18 +13759,6 @@
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "settings()"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage()",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/pages/ShippingSettingsPage.tsx",
|
||||
"source_location": "L11",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_pages_shippingsettingspage_shippingsettingspage",
|
||||
"community": 48,
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "shippingsettingspage()"
|
||||
},
|
||||
{
|
||||
"label": "SslSettingsPage()",
|
||||
"file_type": "code",
|
||||
@ -15179,7 +15179,7 @@
|
||||
"label": "ArchiveProductListItem()",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L262",
|
||||
"source_location": "L267",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -17363,7 +17363,7 @@
|
||||
"label": ".addPattern()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L829",
|
||||
"source_location": "L833",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_addpattern",
|
||||
@ -17375,7 +17375,7 @@
|
||||
"label": ".clearAllSmsLogs()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L845",
|
||||
"source_location": "L849",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_clearallsmslogs",
|
||||
@ -17411,7 +17411,7 @@
|
||||
"label": ".deleteSmsLog()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L841",
|
||||
"source_location": "L845",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_deletesmslog",
|
||||
@ -17423,7 +17423,7 @@
|
||||
"label": ".editPattern()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L833",
|
||||
"source_location": "L837",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_editpattern",
|
||||
@ -17459,7 +17459,7 @@
|
||||
"label": ".getPatterns()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L825",
|
||||
"source_location": "L829",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_getpatterns",
|
||||
@ -17483,7 +17483,7 @@
|
||||
"label": ".getSmsCredit()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L800",
|
||||
"source_location": "L804",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_getsmscredit",
|
||||
@ -17495,7 +17495,7 @@
|
||||
"label": ".getSmsEvents()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L817",
|
||||
"source_location": "L821",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_getsmsevents",
|
||||
@ -17507,7 +17507,7 @@
|
||||
"label": ".getSmsLogs()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L837",
|
||||
"source_location": "L841",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_getsmslogs",
|
||||
@ -17519,7 +17519,7 @@
|
||||
"label": ".getSmsSettings()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L796",
|
||||
"source_location": "L800",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_getsmssettings",
|
||||
@ -17567,7 +17567,7 @@
|
||||
"label": ".testSms()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L813",
|
||||
"source_location": "L817",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_testsms",
|
||||
@ -17579,7 +17579,7 @@
|
||||
"label": ".testSmsRule()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L821",
|
||||
"source_location": "L825",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_testsmsrule",
|
||||
@ -17627,7 +17627,7 @@
|
||||
"label": ".updateSmsSettings()",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L804",
|
||||
"source_location": "L808",
|
||||
"_callable": true,
|
||||
"_origin": "ast",
|
||||
"id": "backend_src_settings_settings_service_settingsservice_updatesmssettings",
|
||||
@ -20071,6 +20071,17 @@
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "products.tsx"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage.tsx",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/pages/ShippingSettingsPage.tsx",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_pages_shippingsettingspage",
|
||||
"community": 104,
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "shippingsettingspage.tsx"
|
||||
},
|
||||
{
|
||||
"label": "Coupons",
|
||||
"file_type": "code",
|
||||
@ -20104,6 +20115,17 @@
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "products"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
|
||||
"source_location": "L37",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_routes_adminroutes_shippingsettingspage",
|
||||
"community": 104,
|
||||
"community_name": "Products.tsx",
|
||||
"norm_label": "shippingsettingspage"
|
||||
},
|
||||
{
|
||||
"label": "pricing.ts",
|
||||
"file_type": "code",
|
||||
@ -32869,6 +32891,28 @@
|
||||
"community_name": "@types/compression",
|
||||
"norm_label": "@types/compression"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/cli",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L50",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_nestjs_cli",
|
||||
"community": 265,
|
||||
"community_name": "@nestjs/cli",
|
||||
"norm_label": "@nestjs/cli"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/cli",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L50",
|
||||
"_origin": "ast",
|
||||
"id": "nestjs_cli",
|
||||
"community": 265,
|
||||
"community_name": "@nestjs/cli",
|
||||
"norm_label": "@nestjs/cli"
|
||||
},
|
||||
{
|
||||
"label": "@types/express",
|
||||
"file_type": "code",
|
||||
@ -35949,28 +35993,6 @@
|
||||
"community_name": "eslint-plugin-react-refresh",
|
||||
"norm_label": "eslint-plugin-react-refresh"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"community": 328,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 328,
|
||||
"community_name": "eslint",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "ApiBearerAuth",
|
||||
"file_type": "code",
|
||||
@ -38589,17 +38611,6 @@
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "settings.tsx"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage.tsx",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/pages/ShippingSettingsPage.tsx",
|
||||
"source_location": "L1",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_pages_shippingsettingspage",
|
||||
"community": 48,
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "shippingsettingspage.tsx"
|
||||
},
|
||||
{
|
||||
"label": "SslSettingsPage.tsx",
|
||||
"file_type": "code",
|
||||
@ -38666,17 +38677,6 @@
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "settings"
|
||||
},
|
||||
{
|
||||
"label": "ShippingSettingsPage",
|
||||
"file_type": "code",
|
||||
"source_file": "frontend/admin-panel/src/routes/adminRoutes.tsx",
|
||||
"source_location": "L37",
|
||||
"_origin": "ast",
|
||||
"id": "frontend_admin_panel_src_routes_adminroutes_shippingsettingspage",
|
||||
"community": 48,
|
||||
"community_name": "Button.tsx",
|
||||
"norm_label": "shippingsettingspage"
|
||||
},
|
||||
{
|
||||
"label": "SslSettingsPage",
|
||||
"file_type": "code",
|
||||
@ -46543,15 +46543,15 @@
|
||||
"norm_label": "devdependencies"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/cli",
|
||||
"label": "eslint",
|
||||
"file_type": "code",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L50",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_devdependencies_nestjs_cli",
|
||||
"id": "backend_package_devdependencies_eslint",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@nestjs/cli"
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
@ -46586,6 +46586,17 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "eslint",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L63",
|
||||
"_origin": "ast",
|
||||
"id": "backend_package_json_eslint",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "eslint"
|
||||
},
|
||||
{
|
||||
"label": "@types/node",
|
||||
"file_type": "concept",
|
||||
@ -46608,17 +46619,6 @@
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "typescript"
|
||||
},
|
||||
{
|
||||
"label": "@nestjs/cli",
|
||||
"file_type": "concept",
|
||||
"source_file": "backend/package.json",
|
||||
"source_location": "L50",
|
||||
"_origin": "ast",
|
||||
"id": "nestjs_cli",
|
||||
"community": 9,
|
||||
"community_name": "devDependencies",
|
||||
"norm_label": "@nestjs/cli"
|
||||
},
|
||||
{
|
||||
"label": "@types/bcryptjs",
|
||||
"file_type": "concept",
|
||||
@ -51150,7 +51150,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L715",
|
||||
"source_location": "L719",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_updatecategorysetting",
|
||||
@ -52351,7 +52351,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L449",
|
||||
"source_location": "L458",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archivepage",
|
||||
@ -52363,7 +52363,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L946",
|
||||
"source_location": "L955",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archivepage",
|
||||
@ -52482,7 +52482,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L263",
|
||||
"source_location": "L268",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52494,7 +52494,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L266",
|
||||
"source_location": "L271",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52506,7 +52506,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L278",
|
||||
"source_location": "L283",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52518,7 +52518,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L279",
|
||||
"source_location": "L284",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52530,7 +52530,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L284",
|
||||
"source_location": "L289",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52542,7 +52542,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L285",
|
||||
"source_location": "L290",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52554,7 +52554,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L295",
|
||||
"source_location": "L300",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -52566,7 +52566,7 @@
|
||||
"context": "call",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L404",
|
||||
"source_location": "L408",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage_archiveproductlistitem",
|
||||
@ -53323,7 +53323,7 @@
|
||||
"confidence": "EXTRACTED",
|
||||
"confidence_score": 1.0,
|
||||
"source_file": "frontend/application/components/MobileBottomNav.tsx",
|
||||
"source_location": "L242",
|
||||
"source_location": "L251",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_mobilebottomnav_mobilebottomnav",
|
||||
@ -105466,7 +105466,7 @@
|
||||
"context": "parameter_type",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L837",
|
||||
"source_location": "L841",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getsmslogs",
|
||||
@ -124816,7 +124816,7 @@
|
||||
"relation": "contains",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L262",
|
||||
"source_location": "L267",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage",
|
||||
@ -124838,7 +124838,7 @@
|
||||
"relation": "contains",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "frontend/application/components/ArchivePage.tsx",
|
||||
"source_location": "L437",
|
||||
"source_location": "L446",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "frontend_application_components_archivepage",
|
||||
@ -135989,7 +135989,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L796",
|
||||
"source_location": "L800",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136000,7 +136000,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L800",
|
||||
"source_location": "L804",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136011,7 +136011,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L804",
|
||||
"source_location": "L808",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136022,7 +136022,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L813",
|
||||
"source_location": "L817",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136033,7 +136033,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L817",
|
||||
"source_location": "L821",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136044,7 +136044,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L821",
|
||||
"source_location": "L825",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136055,7 +136055,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L825",
|
||||
"source_location": "L829",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136066,7 +136066,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L829",
|
||||
"source_location": "L833",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136077,7 +136077,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L833",
|
||||
"source_location": "L837",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136088,7 +136088,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L837",
|
||||
"source_location": "L841",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136099,7 +136099,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L841",
|
||||
"source_location": "L845",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -136110,7 +136110,7 @@
|
||||
"relation": "method",
|
||||
"confidence": "EXTRACTED",
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L845",
|
||||
"source_location": "L849",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice",
|
||||
@ -140524,7 +140524,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L830",
|
||||
"source_location": "L834",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_addpattern",
|
||||
@ -140536,7 +140536,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L846",
|
||||
"source_location": "L850",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_clearallsmslogs",
|
||||
@ -140548,7 +140548,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L842",
|
||||
"source_location": "L846",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_deletesmslog",
|
||||
@ -140560,7 +140560,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L834",
|
||||
"source_location": "L838",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_editpattern",
|
||||
@ -140572,7 +140572,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L826",
|
||||
"source_location": "L830",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getpatterns",
|
||||
@ -140584,7 +140584,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L801",
|
||||
"source_location": "L805",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getsmscredit",
|
||||
@ -140596,7 +140596,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L818",
|
||||
"source_location": "L822",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getsmsevents",
|
||||
@ -140608,7 +140608,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L838",
|
||||
"source_location": "L842",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getsmslogs",
|
||||
@ -140620,7 +140620,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L797",
|
||||
"source_location": "L801",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_getsmssettings",
|
||||
@ -140632,7 +140632,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L814",
|
||||
"source_location": "L818",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_testsms",
|
||||
@ -140644,7 +140644,7 @@
|
||||
"confidence": "INFERRED",
|
||||
"confidence_score": 0.8,
|
||||
"source_file": "backend/src/settings/settings.service.ts",
|
||||
"source_location": "L822",
|
||||
"source_location": "L826",
|
||||
"weight": 1.0,
|
||||
"_origin": "ast",
|
||||
"source": "backend_src_settings_settings_service_settingsservice_testsmsrule",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,16 +1,16 @@
|
||||
# Graph Report - canina (2026-09-13)
|
||||
|
||||
## Corpus Check
|
||||
- 609 files · ~1,125,351 words
|
||||
- 609 files · ~1,125,316 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 4286 nodes · 7915 edges · 325 communities (210 shown, 115 thin omitted)
|
||||
- 4304 nodes · 7945 edges · 313 communities (217 shown, 96 thin omitted)
|
||||
- Extraction: 96% EXTRACTED · 4% INFERRED · 0% AMBIGUOUS · INFERRED: 303 edges (avg confidence: 0.79)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `3261a834`
|
||||
- Built from commit: `8e4ee984`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@ -19,13 +19,13 @@
|
||||
- app.module.ts
|
||||
- ApiKeysService
|
||||
- productService.ts
|
||||
- RevalidationService
|
||||
- HomeClient.tsx
|
||||
- CmsController
|
||||
- tickets.controller.ts
|
||||
- SmsSettingsPage.tsx
|
||||
- SmsService
|
||||
- devDependencies
|
||||
- reviews.controller.ts
|
||||
- CreateReviewDto
|
||||
- UsersService
|
||||
- index.ts
|
||||
- app-audit-verification.e2e-spec.js
|
||||
@ -34,9 +34,9 @@
|
||||
- DoctorQueryDto
|
||||
- schema.ts
|
||||
- JwtAuthGuard
|
||||
- admin.controller.ts
|
||||
- BulkPriceAdjustmentDto
|
||||
- CreateVideoDto
|
||||
- ClientLayout.tsx
|
||||
- useSettingsStore
|
||||
- AdminService
|
||||
- MenuService
|
||||
- BE-001
|
||||
@ -75,14 +75,14 @@
|
||||
- Role & Core Objective
|
||||
- MetricsController
|
||||
- compilerOptions
|
||||
- CreateUserDto
|
||||
- admin.controller.ts
|
||||
- ProductPage.tsx
|
||||
- admin.module.ts
|
||||
- dependencies
|
||||
- compilerOptions
|
||||
- admin.service.ts
|
||||
- AdminController
|
||||
- OrderService
|
||||
- OrdersController
|
||||
- components/Skeleton.tsx
|
||||
- Required Review Group Closures
|
||||
- compilerOptions
|
||||
@ -91,7 +91,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- WikiController
|
||||
- PetsController
|
||||
- ProductsService
|
||||
- RevalidationService
|
||||
- seo.module.ts
|
||||
- rss.xml/route.ts
|
||||
- 🏢 AI Software Agency — Master Orchestration Protocol v3
|
||||
@ -105,12 +105,12 @@
|
||||
- dependencies
|
||||
- CreateEBankCheckoutDto
|
||||
- seed-products.ts
|
||||
- PetProfile.tsx
|
||||
- 20260526145407_init/migration.sql
|
||||
- Reconciled Audit Roles & Assignments
|
||||
- OrdersService
|
||||
- .retryPayment
|
||||
- auth.controller.ts
|
||||
- Phase 3.1 — Human Review Preparation and Master Backlog Critique
|
||||
- getSeoConfig
|
||||
- wiki/[slug]/page.tsx
|
||||
- compilerOptions
|
||||
- AdminTransactionFilterDto
|
||||
- scripts
|
||||
@ -128,7 +128,7 @@
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- Operational Rules & Boundaries
|
||||
- useSettingsStore
|
||||
- lib/services/api.ts
|
||||
- AppService
|
||||
- MediaSelector.tsx
|
||||
- Vazirmatn Changelog
|
||||
@ -137,14 +137,14 @@
|
||||
- compilerOptions
|
||||
- compilerOptions
|
||||
- backend/README.md
|
||||
- ApiOperation
|
||||
- Body
|
||||
- auth.service.ts
|
||||
- Repository Map
|
||||
- validate_integrity.js
|
||||
- admin-panel/package.json
|
||||
- Sahel-Font
|
||||
- HomeController
|
||||
- PaymentService
|
||||
- WikiController
|
||||
- Sahel-Font
|
||||
- Role & Core Objective
|
||||
- orchestrate.py
|
||||
@ -159,14 +159,14 @@
|
||||
- application/package.json
|
||||
- start-dev.js
|
||||
- generate-openapi.js
|
||||
- getMediaUrl
|
||||
- SafeImage.tsx
|
||||
- Orders.tsx
|
||||
- System Discovery
|
||||
- torob.controller.ts
|
||||
- ProductDto
|
||||
- catalog/page.tsx
|
||||
- CreateOrderDto
|
||||
- Product Requirement Document (PRD)
|
||||
- @nestjs/jwt
|
||||
- OrdersService
|
||||
- @eslint/js
|
||||
- exclude
|
||||
- Baseline Command Plan & Reconciled Command History
|
||||
@ -193,13 +193,13 @@
|
||||
- uploads/[...path]/route.ts
|
||||
- eslint-config-prettier
|
||||
- نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina
|
||||
- eslint-config-next
|
||||
- CreateApiKeyDto
|
||||
- API Contract Specification
|
||||
- ⚙️ Backend Technical Review (05_dev_backend)
|
||||
- 🎨 Frontend & Admin Panel Technical Review (06_dev_frontend)
|
||||
- 🚀 SEO & Content Strategy Review (12_seo_content)
|
||||
- trust-seals/page.tsx
|
||||
- wiki/[slug]/page.tsx
|
||||
- CartDrawer.tsx
|
||||
- seed-ui-texts.ts
|
||||
- seed-wiki.ts
|
||||
- update-blog.dto.ts
|
||||
@ -218,7 +218,7 @@
|
||||
- deploy.sh
|
||||
- 🔒 Security & Performance Review (09_devops_security)
|
||||
- 👁️ UX & Persona Interface Review (08_visual_qa)
|
||||
- class-transformer
|
||||
- reviews.service.ts
|
||||
- prisma/scientificTerms.ts
|
||||
- seed-blogs.ts
|
||||
- seed-custom.ts
|
||||
@ -234,20 +234,20 @@
|
||||
- sync_honest_manifest.js
|
||||
- sync_manifest.js
|
||||
- FormField.tsx
|
||||
- globals
|
||||
- AdminQueryDto
|
||||
- Textarea.tsx
|
||||
- admin-panel/tsconfig.json
|
||||
- tailwindcss
|
||||
- typescript-eslint
|
||||
- wiki/page.tsx
|
||||
- next.config.ts
|
||||
- Shabnam Font README
|
||||
- AGENTS.md
|
||||
- rules/graphify.md
|
||||
- .agents/workflows/graphify.md
|
||||
- instructions.md
|
||||
- helmet
|
||||
- js-yaml
|
||||
- @nestjs/core
|
||||
- 20260526160916_add_ui_texts_and_scientific_terms/migration.sql
|
||||
- @types/node
|
||||
- typescript
|
||||
- source-map-support
|
||||
- ts-loader
|
||||
- ts-node
|
||||
@ -275,7 +275,7 @@
|
||||
- User Login API
|
||||
- User Logout API
|
||||
- @types/compression
|
||||
- @nestjs/cli
|
||||
- tailwindcss
|
||||
- @types/express
|
||||
- @types/jest
|
||||
- @types/multer
|
||||
@ -293,33 +293,21 @@
|
||||
- Production Docker Compose
|
||||
- Staging Docker Compose
|
||||
- ZibalService
|
||||
- @eslint/eslintrc
|
||||
- @nestjs/throttler
|
||||
- ZibalEBankService
|
||||
- .initiateOrderPayment
|
||||
- @tailwindcss/postcss
|
||||
- typescript
|
||||
- passport
|
||||
- typescript-eslint
|
||||
- @nestjs/schematics
|
||||
- reflect-metadata
|
||||
- swagger-ui-express
|
||||
- eslint-plugin-react-hooks
|
||||
- jest
|
||||
- @types/passport-jwt
|
||||
- @nestjs/swagger
|
||||
- typescript
|
||||
- @nestjs/testing
|
||||
- revalidate/route.ts
|
||||
- MaskableField.tsx
|
||||
- @tailwindcss/postcss
|
||||
- prettier
|
||||
- ts-jest
|
||||
- @types/js-yaml
|
||||
- @types/react-dom
|
||||
- @types/supertest
|
||||
- eslint-plugin-react-refresh
|
||||
- eslint-plugin-prettier
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `Roles()` - 108 edges
|
||||
@ -346,35 +334,35 @@
|
||||
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`
|
||||
|
||||
## Communities (325 total, 115 thin omitted)
|
||||
## Communities (313 total, 96 thin omitted)
|
||||
|
||||
### Community 0 - "Roles"
|
||||
Cohesion: 0.24
|
||||
Nodes (13): Roles(), PaymentController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Get (+5 more)
|
||||
|
||||
### Community 1 - "app.module.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (42): AdminModule, Module, AuthModule, Module, B2BModule, Module, BannersModule, Module (+34 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (38): B2BModule, Module, BannersModule, Module, CmsModule, Module, SmsModule, Global (+30 more)
|
||||
|
||||
### Community 2 - "ApiKeysService"
|
||||
Cohesion: 0.07
|
||||
Nodes (22): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+14 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (16): ApiKeysController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+8 more)
|
||||
|
||||
### Community 3 - "productService.ts"
|
||||
Cohesion: 0.06
|
||||
Nodes (37): DEFAULT_CATEGORIES, dynamic, revalidate, dynamic, revalidate, BlogCategory, BlogPostItem, CartDrawer() (+29 more)
|
||||
Nodes (33): dynamic, GET(), revalidate, revalidate, DEFAULT_CATEGORIES, dynamic, revalidate, dynamic (+25 more)
|
||||
|
||||
### Community 4 - "RevalidationService"
|
||||
Cohesion: 0.15
|
||||
Nodes (6): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable
|
||||
### Community 4 - "HomeClient.tsx"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): HomeClient(), HomeClientProps, BannerPlacement(), BannerPlacementProps, BlogPreviewSection(), FAQSection(), Hero(), StatCounter() (+12 more)
|
||||
|
||||
### Community 5 - "CmsController"
|
||||
Cohesion: 0.08
|
||||
Nodes (26): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+18 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (24): CmsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+16 more)
|
||||
|
||||
### Community 6 - "tickets.controller.ts"
|
||||
Cohesion: 0.09
|
||||
@ -386,15 +374,15 @@ Nodes (10): PatternItem, SmsConfigState, SmsEventDefinition, SmsEventVariable, S
|
||||
|
||||
### Community 8 - "SmsService"
|
||||
Cohesion: 0.05
|
||||
Nodes (27): SmsEventDefinition, SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber, IsOptional (+19 more)
|
||||
Nodes (28): SmsEventDefinition, SmsLogQuery, SmsService, Injectable, SmsLogQueryDto, ApiPropertyOptional, IsIn, IsNumber (+20 more)
|
||||
|
||||
### Community 9 - "devDependencies"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): devDependencies, eslint, @types/bcryptjs, @types/node, typescript, eslint, @types/node, typescript (+1 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (25): devDependencies, eslint, @eslint/eslintrc, eslint-plugin-prettier, globals, @nestjs/cli, @nestjs/testing, prettier (+17 more)
|
||||
|
||||
### Community 10 - "reviews.controller.ts"
|
||||
Cohesion: 0.07
|
||||
Nodes (32): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ApiProperty (+24 more)
|
||||
### Community 10 - "CreateReviewDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (25): CreateReviewDto, ApiProperty, IsInt, IsNotEmpty, IsOptional, IsString, Min, ReviewsController (+17 more)
|
||||
|
||||
### Community 11 - "UsersService"
|
||||
Cohesion: 0.06
|
||||
@ -410,11 +398,11 @@ Nodes (26): EnvironmentVariables, IsNotEmpty, IsOptional, IsString, validateEnv(
|
||||
|
||||
### Community 14 - "toPersian"
|
||||
Cohesion: 0.09
|
||||
Nodes (32): VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), ArchivePage(), B2BPortal() (+24 more)
|
||||
Nodes (35): B2BPortal, VerifyContent(), AddressFormData, AddressModal(), AddressModalProps, normalizeDigits(), validateAddressForm(), ArchivePage() (+27 more)
|
||||
|
||||
### Community 15 - "src/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (31): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+23 more)
|
||||
Nodes (32): Layout(), ProtectedRoute(), MenuGroup, Sidebar(), SidebarProps, SubMenuItem, LiveMonitoringSummary, SEARCHABLE_PAGES (+24 more)
|
||||
|
||||
### Community 16 - "DoctorQueryDto"
|
||||
Cohesion: 0.09
|
||||
@ -428,21 +416,17 @@ Nodes (18): B2BPage(), generateMetadata(), ContactPage(), generateMetadata(), ge
|
||||
Cohesion: 0.20
|
||||
Nodes (7): JwtAuthGuard, Injectable, ROLES_KEY, RequestWithUser, RolesGuard, Injectable, UserReqPayload
|
||||
|
||||
### Community 19 - "admin.controller.ts"
|
||||
Cohesion: 0.35
|
||||
### Community 19 - "BulkPriceAdjustmentDto"
|
||||
Cohesion: 0.30
|
||||
Nodes (12): ApplyGlobalMarginsDto, BulkPriceAdjustmentDto, ApiProperty, ApiPropertyOptional, IsArray, IsBoolean, IsIn, IsNumber (+4 more)
|
||||
|
||||
### Community 20 - "CreateVideoDto"
|
||||
Cohesion: 0.08
|
||||
Nodes (29): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+21 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (31): CreateVideoDto, ApiProperty, ApiPropertyOptional, IsBoolean, IsNotEmpty, IsOptional, IsString, UpdateVideoDto (+23 more)
|
||||
|
||||
### Community 21 - "ClientLayout.tsx"
|
||||
### Community 21 - "useSettingsStore"
|
||||
Cohesion: 0.08
|
||||
Nodes (23): AuthModal, B2BPortal, CartDrawer, MobileBottomNav, PrescriptionUploadModal, BannerPlacement(), BannerPlacementProps, BrandLogo() (+15 more)
|
||||
|
||||
### Community 22 - "AdminService"
|
||||
Cohesion: 0.09
|
||||
Nodes (3): Delete, AdminService, Injectable
|
||||
Nodes (29): ClientLayout(), MobileBottomNav, PrescriptionUploadModal, metadata, B2BLandingClient(), BrandLogo(), BrandLogoProps, Footer() (+21 more)
|
||||
|
||||
### Community 23 - "MenuService"
|
||||
Cohesion: 0.12
|
||||
@ -481,8 +465,8 @@ Cohesion: 0.06
|
||||
Nodes (31): Acceptance Criteria, Affected Application, Affected Files, Alternative Direction, Category, Completion Statement, Confidence, Dependencies (+23 more)
|
||||
|
||||
### Community 32 - "adminRoutes.tsx"
|
||||
Cohesion: 0.06
|
||||
Nodes (20): App(), Props, RouteErrorBoundary, State, HeroBanner, VetTestimonial, CategoryDist, DashboardData (+12 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (17): App(), Props, RouteErrorBoundary, State, CategoryDist, DashboardData, BestSellerItem, CategoryDistItem (+9 more)
|
||||
|
||||
### Community 33 - "WholesaleService"
|
||||
Cohesion: 0.14
|
||||
@ -509,8 +493,8 @@ Cohesion: 0.16
|
||||
Nodes (13): TransactionReceiptData, TransactionReceiptModal(), TransactionReceiptModalProps, Button(), ThSort(), ThSortProps, GatewayHealth, Stats (+5 more)
|
||||
|
||||
### Community 39 - "CategoriesController"
|
||||
Cohesion: 0.09
|
||||
Nodes (17): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+9 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (16): CategoriesController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, Delete (+8 more)
|
||||
|
||||
### Community 40 - "MediaController"
|
||||
Cohesion: 0.11
|
||||
@ -545,8 +529,8 @@ Cohesion: 0.13
|
||||
Nodes (14): IngredientsController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 48 - "Button.tsx"
|
||||
Cohesion: 0.11
|
||||
Nodes (14): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, FAQManager, PaymentGatewaysPage (+6 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (15): ButtonProps, ButtonSize, ButtonVariant, Spinner(), FAQ, SslStatus, BannersManager, FAQManager (+7 more)
|
||||
|
||||
### Community 49 - "devDependencies"
|
||||
Cohesion: 0.11
|
||||
@ -554,7 +538,7 @@ Nodes (19): autoprefixer, devDependencies, autoprefixer, eslint, @eslint/js, glo
|
||||
|
||||
### Community 50 - "devDependencies"
|
||||
Cohesion: 0.12
|
||||
Nodes (17): devDependencies, eslint, jsdom, tailwindcss, @testing-library/jest-dom, @testing-library/react, @types/node, @types/react (+9 more)
|
||||
Nodes (17): eslint-config-next, devDependencies, eslint, eslint-config-next, jsdom, @testing-library/jest-dom, @testing-library/react, @types/node (+9 more)
|
||||
|
||||
### Community 51 - "BlogsController"
|
||||
Cohesion: 0.07
|
||||
@ -569,12 +553,12 @@ Cohesion: 0.13
|
||||
Nodes (14): SmartAdvisorController, ApiBearerAuth, ApiOperation, ApiTags, Body, Controller, Delete, Get (+6 more)
|
||||
|
||||
### Community 54 - "Modal.tsx"
|
||||
Cohesion: 0.08
|
||||
Nodes (19): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, MENU_TABS, MenuItem, MenuType (+11 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (21): maxWidthClasses, Modal(), ModalProps, ContactInfoItem, ContactSubmission, MENU_TABS, MenuItem, MenuType (+13 more)
|
||||
|
||||
### Community 55 - "UITexts.tsx"
|
||||
Cohesion: 0.08
|
||||
Nodes (23): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ActiveStates, PRESET_BG_COLORS, PRESET_COLORS, RichTextEditor(), RichTextEditorProps (+15 more)
|
||||
Cohesion: 0.14
|
||||
Nodes (12): ICON_REGISTRY, IconPickerModal(), IconPickerModalProps, ToggleSwitch(), ToggleSwitchProps, AppSitePage, PageSection, SectionField (+4 more)
|
||||
|
||||
### Community 56 - "PrescriptionsManager.tsx"
|
||||
Cohesion: 0.12
|
||||
@ -592,33 +576,37 @@ Nodes (5): ApiExcludeController, MetricsController, Controller, Get, Res
|
||||
Cohesion: 0.06
|
||||
Nodes (30): compilerOptions, allowSyntheticDefaultImports, baseUrl, declaration, emitDecoratorMetadata, esModuleInterop, experimentalDecorators, forceConsistentCasingInFileNames (+22 more)
|
||||
|
||||
### Community 60 - "CreateUserDto"
|
||||
Cohesion: 0.29
|
||||
Nodes (10): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+2 more)
|
||||
### Community 60 - "admin.controller.ts"
|
||||
Cohesion: 0.18
|
||||
Nodes (11): CreateUserDto, ApiProperty, ApiPropertyOptional, IsEmail, IsNotEmpty, IsNumber, IsOptional, IsString (+3 more)
|
||||
|
||||
### Community 61 - "ProductPage.tsx"
|
||||
Cohesion: 0.19
|
||||
Nodes (24): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, ProductCard(), MobileBottomNav(), OrderTracking(), PetProfile() (+16 more)
|
||||
Cohesion: 0.11
|
||||
Nodes (39): ArchiveProductCard(), ArchiveProductListItem(), CATEGORY_MAP, ICON_MAP, FeaturedProducts(), ProductCard(), Header(), MobileBottomNav() (+31 more)
|
||||
|
||||
### Community 62 - "admin.module.ts"
|
||||
Cohesion: 0.04
|
||||
Nodes (32): PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+24 more)
|
||||
Nodes (34): AdminModule, Module, PetsController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller (+26 more)
|
||||
|
||||
### Community 63 - "dependencies"
|
||||
Cohesion: 0.09
|
||||
Nodes (23): dependencies, bcrypt, bcryptjs, class-validator, compression, ioredis, @nestjs/common, @nestjs/passport (+15 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (43): dependencies, bcrypt, bcryptjs, class-transformer, class-validator, compression, helmet, ioredis (+35 more)
|
||||
|
||||
### Community 64 - "compilerOptions"
|
||||
Cohesion: 0.10
|
||||
Nodes (20): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, lib, module, moduleDetection, moduleResolution, noEmit (+12 more)
|
||||
|
||||
### Community 65 - "admin.service.ts"
|
||||
Cohesion: 0.19
|
||||
Nodes (8): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode, CANONICAL_ALIASES
|
||||
Cohesion: 0.31
|
||||
Nodes (7): CouponTargetInput, PaginationQuery, applyRounding(), calculateSellingPrice(), DEFAULT_PRICING_SETTINGS, PricingSettings, RoundingMode
|
||||
|
||||
### Community 66 - "AdminController"
|
||||
Cohesion: 0.10
|
||||
Nodes (12): AdminController, ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Controller, Delete, Get (+4 more)
|
||||
|
||||
### Community 67 - "OrdersController"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): AdminController, ApiBearerAuth, ApiQuery, ApiTags, Controller, Get, Query, UseGuards (+5 more)
|
||||
Nodes (11): OrdersController, ApiBearerAuth, ApiTags, Controller, IsNotEmpty, IsNumber, IsString, UseGuards (+3 more)
|
||||
|
||||
### Community 68 - "components/Skeleton.tsx"
|
||||
Cohesion: 0.21
|
||||
@ -634,7 +622,7 @@ Nodes (23): compilerOptions, allowImportingTsExtensions, erasableSyntaxOnly, jsx
|
||||
|
||||
### Community 71 - "getPageMetadata"
|
||||
Cohesion: 0.09
|
||||
Nodes (14): generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+6 more)
|
||||
Nodes (15): generateMetadata(), CatalogClient(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata(), generateMetadata() (+7 more)
|
||||
|
||||
### Community 72 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.11
|
||||
@ -652,9 +640,9 @@ Nodes (14): ApiBearerAuth, ApiOperation, ApiQuery, ApiTags, Body, Controller, De
|
||||
Cohesion: 0.05
|
||||
Nodes (47): CreateHealthLogDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString, CreatePetDto, ApiProperty (+39 more)
|
||||
|
||||
### Community 76 - "ProductsService"
|
||||
Cohesion: 0.10
|
||||
Nodes (19): GetProductsDto, ApiPropertyOptional, IsEnum, IsOptional, IsString, ProductsController, ApiOperation, ApiTags (+11 more)
|
||||
### Community 76 - "RevalidationService"
|
||||
Cohesion: 0.07
|
||||
Nodes (25): Optional, RevalidationModule, Global, Module, RevalidationService, Injectable, GetProductsDto, ApiPropertyOptional (+17 more)
|
||||
|
||||
### Community 77 - "seo.module.ts"
|
||||
Cohesion: 0.16
|
||||
@ -708,17 +696,17 @@ Nodes (8): CreateEBankCheckoutDto, ApiProperty, ApiPropertyOptional, IsNotEmpty,
|
||||
Cohesion: 0.17
|
||||
Nodes (12): prisma, main(), prisma, determineSuitableFor(), findOrCreateCategory(), getProductImageUrl(), main(), parseSize() (+4 more)
|
||||
|
||||
### Community 90 - "PetProfile.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (28): ClientLayout(), metadata, Header(), MENU_ICONS, OrderSuccess(), PrescriptionUploadModal(), PrescriptionUploadModalProps, SearchResultsPage() (+20 more)
|
||||
### Community 90 - "20260526145407_init/migration.sql"
|
||||
Cohesion: 0.27
|
||||
Nodes (14): "coupons", "health_logs", "order_items", "orders", "pet_medical_conditions", "pets", "product_ingredients", "product_symptoms" (+6 more)
|
||||
|
||||
### Community 91 - "Reconciled Audit Roles & Assignments"
|
||||
Cohesion: 0.12
|
||||
Nodes (15): 10. Documentation Engineer, 1. Lead Architect / Orchestrator, 2. React / Vite Storefront Auditor, 3. NestJS Backend Auditor, 4. Admin Features Auditor, 5. Database & Data Integrity Auditor, 6. Security Auditor, 7. TypeScript & Code Quality Auditor (+7 more)
|
||||
|
||||
### Community 92 - "OrdersService"
|
||||
Cohesion: 0.07
|
||||
Nodes (29): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+21 more)
|
||||
### Community 92 - ".retryPayment"
|
||||
Cohesion: 0.19
|
||||
Nodes (11): ApiBadRequestResponse, ApiCreatedResponse, ApiNotFoundResponse, ApiOkResponse, ApiOperation, Body, Get, Param (+3 more)
|
||||
|
||||
### Community 93 - "auth.controller.ts"
|
||||
Cohesion: 0.06
|
||||
@ -728,9 +716,9 @@ Nodes (43): AuthController, ApiBadRequestResponse, ApiBearerAuth, ApiOkResponse,
|
||||
Cohesion: 0.13
|
||||
Nodes (14): 10. Dependency & Wave Adjustments, 11. Acceptance Criteria Refinements, 12. Business and Product Decision Classification, 13. Final Recommended Backlog Summary, 1. Executive Assessment, 2. Findings That Require No Change, 3. Findings Requiring Task Refinements, 4. Tasks Requiring Splitting (+6 more)
|
||||
|
||||
### Community 95 - "getSeoConfig"
|
||||
Cohesion: 0.24
|
||||
Nodes (12): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), revalidate (+4 more)
|
||||
### Community 95 - "wiki/[slug]/page.tsx"
|
||||
Cohesion: 0.22
|
||||
Nodes (16): BlogPostPage(), generateMetadata(), getBlog(), revalidate, safeIso(), safeLocalDate(), generateMetadata(), generateMetadata() (+8 more)
|
||||
|
||||
### Community 96 - "compilerOptions"
|
||||
Cohesion: 0.06
|
||||
@ -765,8 +753,8 @@ 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)
|
||||
|
||||
### Community 104 - "Products.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (25): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+17 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (24): Input, InputProps, formatPriceWithCommas(), PriceInput(), PriceInputProps, toEnglishDigits(), Coupon, CouponFormData (+16 more)
|
||||
|
||||
### Community 105 - "Operational Rules & Boundaries"
|
||||
Cohesion: 0.17
|
||||
@ -777,12 +765,12 @@ Cohesion: 0.43
|
||||
Nodes (7): InitiatePaymentDto, InitiateWalletTopupDto, ApiProperty, ApiPropertyOptional, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 107 - "PaginationDto"
|
||||
Cohesion: 0.05
|
||||
Nodes (33): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+25 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (18): BlogsModule, Module, BlogFilterDto, BlogsService, Injectable, PaginationDto, SortOrder, ApiPropertyOptional (+10 more)
|
||||
|
||||
### Community 108 - "PrismaService"
|
||||
Cohesion: 0.07
|
||||
Nodes (24): DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions, SmsConfig (+16 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (25): CategoryQuery, DEFAULT_SMS_RULES, SMS_EVENT_DEFINITIONS, SmsEventVariable, SmsRule, MeliPayamakPattern, MeliPayamakResponse, SendPatternSmsOptions (+17 more)
|
||||
|
||||
### Community 109 - "1. Summary of Integrity Repairs Performed"
|
||||
Cohesion: 0.17
|
||||
@ -800,17 +788,17 @@ Nodes (10): 1. Mark Active Task as Complete, 2. Documentation Updates, 3. Dynami
|
||||
Cohesion: 0.18
|
||||
Nodes (10): 1. Pre-Deployment Checklist, 2. Build Verification, 3. Deployment Strategy (Based on Target), 4. Post-Deployment Health Check, 5. Forbidden Actions, Expected JSON Output Schema, Operational Rules & Boundaries, Required Output Artifacts (What files to write/update) (+2 more)
|
||||
|
||||
### Community 113 - "useSettingsStore"
|
||||
Cohesion: 0.07
|
||||
Nodes (38): HomeClient(), HomeClientProps, B2BLandingClient(), BlogPostClientProps, BlogPost, BlogPreviewSection(), ContactInfoItem, FAQItem (+30 more)
|
||||
### Community 113 - "lib/services/api.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (22): BlogPost, ContactInfoItem, FAQItem, OrderDetailsModalProps, ProductReviews, ProductReviews(), ProductReviewsProps, ReviewItem (+14 more)
|
||||
|
||||
### Community 114 - "AppService"
|
||||
Cohesion: 0.29
|
||||
Nodes (5): AppController, Controller, Get, AppService, Injectable
|
||||
|
||||
### Community 115 - "MediaSelector.tsx"
|
||||
Cohesion: 0.06
|
||||
Nodes (35): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+27 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (45): ConfirmModal(), ConfirmModalProps, ImagePreviewModal(), ImagePreviewModalProps, getFileType(), Media, MediaSelector(), MediaSelectorProps (+37 more)
|
||||
|
||||
### Community 116 - "Vazirmatn Changelog"
|
||||
Cohesion: 0.18
|
||||
@ -836,13 +824,13 @@ 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 122 - "ApiOperation"
|
||||
Cohesion: 0.23
|
||||
Nodes (6): ApiOperation, Body, Param, Post, Put, CouponInput
|
||||
### Community 122 - "Body"
|
||||
Cohesion: 0.17
|
||||
Nodes (3): Body, Post, CouponInput
|
||||
|
||||
### Community 123 - "auth.service.ts"
|
||||
Cohesion: 0.08
|
||||
Nodes (10): AppModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput, Injectable, normalizeMobile() (+2 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (13): AppModule, Module, AuthModule, Module, AdminLoginInput, AuthService, LoginInput, RegisterInput (+5 more)
|
||||
|
||||
### Community 124 - "Repository Map"
|
||||
Cohesion: 0.20
|
||||
@ -864,6 +852,10 @@ Nodes (9): Arch Linux, Contributors, Install, Known problems for variable versio
|
||||
Cohesion: 0.16
|
||||
Nodes (10): HomeController, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, HomeModule, Module (+2 more)
|
||||
|
||||
### Community 129 - "WikiController"
|
||||
Cohesion: 0.21
|
||||
Nodes (9): ApiNotFoundResponse, ApiOkResponse, ApiOperation, ApiTags, Controller, Get, Param, Query (+1 more)
|
||||
|
||||
### Community 130 - "Sahel-Font"
|
||||
Cohesion: 0.20
|
||||
Nodes (9): Arch Linux, Contributors, Install, Known problems for variable version, License, Sahel-Font, To Do (variable), طریقه استفاده از نسخه متغیر variable (+1 more)
|
||||
@ -920,9 +912,9 @@ Nodes (7): backend, distMainPath, fs, http, path, { spawn, execSync }, waitForBa
|
||||
Cohesion: 0.25
|
||||
Nodes (6): app_module_1, core_1, fs, path, swagger_1, yaml
|
||||
|
||||
### Community 144 - "getMediaUrl"
|
||||
### Community 144 - "SafeImage.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (24): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, dynamic, GET(), revalidate (+16 more)
|
||||
Nodes (25): buildTorobProductSpec(), buildTorobProductTitle(), dynamic, GET(), revalidate, BlogPostClientProps, PLAYBACK_RATES, PodcastInlinePlayer() (+17 more)
|
||||
|
||||
### Community 145 - "Orders.tsx"
|
||||
Cohesion: 0.22
|
||||
@ -937,9 +929,13 @@ Cohesion: 0.22
|
||||
Nodes (8): buildTorobProductSpec(), buildTorobProductTitle(), TorobController, ApiOperation, ApiTags, Controller, Get, Query
|
||||
|
||||
### Community 148 - "ProductDto"
|
||||
Cohesion: 0.14
|
||||
Cohesion: 0.16
|
||||
Nodes (7): ProductDto, ApiPropertyOptional, IsArray, IsBoolean, IsNumber, IsOptional, IsString
|
||||
|
||||
### Community 149 - "CreateOrderDto"
|
||||
Cohesion: 0.22
|
||||
Nodes (11): CreateOrderDto, OrderItemDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsNumber, IsOptional (+3 more)
|
||||
|
||||
### Community 150 - "Product Requirement Document (PRD)"
|
||||
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)
|
||||
@ -1036,6 +1032,10 @@ Nodes (5): dynamic, GET(), getCandidateUrls(), getMimeType(), HEAD()
|
||||
Cohesion: 0.33
|
||||
Nodes (5): نقشه جامع پوشش تستهای سرتاسری (E2E Test Coverage Map) — پروژه Canina, ۱. معماری و نقشهای کاربری (User Roles), ۲. ماتریس جریانها و قابلیتهای کاربرمحور (Feature & Flow Matrix), ۳. وضعیت پوشش نهایی سوئیت ۱۱گانه (Final 11 Test Suites Status), ۴. راهنمای نگهداری و افزودن فیچرهای جدید بدون شکستن تستها (Developer Maintenance Guide)
|
||||
|
||||
### Community 179 - "CreateApiKeyDto"
|
||||
Cohesion: 0.27
|
||||
Nodes (7): CreateApiKeyDto, ApiProperty, ApiPropertyOptional, IsArray, IsNotEmpty, IsOptional, IsString
|
||||
|
||||
### Community 180 - "API Contract Specification"
|
||||
Cohesion: 0.50
|
||||
Nodes (3): 1. OpenAPI 3.0 (Swagger) Specification, 2. Endpoint Definitions & Data Types, API Contract Specification
|
||||
@ -1052,9 +1052,9 @@ 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 185 - "wiki/[slug]/page.tsx"
|
||||
Cohesion: 0.60
|
||||
Nodes (5): generateMetadata(), getRelatedProducts(), getWikiTerm(), WikiTermPage(), generateMedicalWebPageSchema()
|
||||
### Community 185 - "CartDrawer.tsx"
|
||||
Cohesion: 0.32
|
||||
Nodes (5): CartDrawer, CartDrawer(), DeleteConfirmModal(), DeleteConfirmModalProps, mockProduct
|
||||
|
||||
### Community 191 - "graphify reference: add a URL and watch a folder"
|
||||
Cohesion: 0.50
|
||||
@ -1081,8 +1081,8 @@ Cohesion: 0.50
|
||||
Nodes (3): Select, SelectOption, SelectProps
|
||||
|
||||
### Community 197 - "AuthModal.tsx"
|
||||
Cohesion: 0.09
|
||||
Nodes (19): LoginModal, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView,, extractOtpFromText(), LoginModal() (+11 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (17): AuthModal, LoginModal, AuthModal(), AuthModalProps, extractOtpFromText(), otpCooldownExpiries, IMPORTANT: only depend on isOpen here — NOT subView. If we depend on subView,, extractOtpFromText() (+9 more)
|
||||
|
||||
### Community 198 - "app/page.tsx"
|
||||
Cohesion: 0.67
|
||||
@ -1096,16 +1096,32 @@ Nodes (3): Deploy on Vercel, Getting Started, Learn More
|
||||
Cohesion: 0.50
|
||||
Nodes (3): COMPOSE_DOCKER_CLI_BUILD, DOCKER_BUILDKIT, deploy.sh script
|
||||
|
||||
### Community 204 - "reviews.service.ts"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): ApiProperty, IsIn, IsOptional, IsString, UpdateReviewDto
|
||||
|
||||
### Community 211 - "Master Task Backlog (Phase 3.3)"
|
||||
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 220 - "AdminQueryDto"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): AdminProductQueryDto, AdminQueryDto, ApiPropertyOptional, IsOptional, IsString
|
||||
|
||||
### Community 224 - "wiki/page.tsx"
|
||||
Cohesion: 0.40
|
||||
Nodes (3): generateMetadata(), formatIngredientDisplayName(), IngredientWiki()
|
||||
|
||||
### Community 226 - "Shabnam Font README"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): Shabnam Font README, Shabnam Font Sample, Vazir Font
|
||||
|
||||
### Community 294 - "ZibalService"
|
||||
Cohesion: 0.09
|
||||
Nodes (4): PaymentService, Injectable, Injectable, ZibalService
|
||||
|
||||
### Community 298 - ".initiateOrderPayment"
|
||||
Cohesion: 0.18
|
||||
Cohesion: 0.20
|
||||
Nodes (10): ApiPropertyOptional, IsOptional, IsString, ZibalCallbackQueryDto, ApiBadRequestResponse, ApiOkResponse, Req, Res (+2 more)
|
||||
|
||||
### Community 317 - "revalidate/route.ts"
|
||||
@ -1113,24 +1129,24 @@ Cohesion: 0.83
|
||||
Nodes (3): GET(), handleRevalidate(), POST()
|
||||
|
||||
## Knowledge Gaps
|
||||
- **1354 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1349 more)
|
||||
- **1356 isolated node(s):** `$schema`, `collection`, `sourceRoot`, `deleteOutDir`, `name` (+1351 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **115 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **96 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 `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `ProductsService`, `reviews.controller.ts`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
_High betweenness centrality (0.074) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `src/services/api.ts` to `HomeController`, `ApiKeysService`, `BlogsController`, `PetsController`, `ProductsService`, `UsersService`, `PaginationDto`, `OrdersService`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.061) - this node is a cross-community bridge._
|
||||
- **Why does `JwtAuthGuard` connect `JwtAuthGuard` to `ApiKeysService`, `CmsController`, `tickets.controller.ts`, `CategoriesController`, `reviews.controller.ts`, `PaginationDto`, `PetsController`, `ProductsService`, `UsersService`, `DoctorQueryDto`, `admin.controller.ts`, `CreateVideoDto`, `auth.controller.ts`, `admin.module.ts`?**
|
||||
_High betweenness centrality (0.030) - this node is a cross-community bridge._
|
||||
- **Why does `ApiResponse` connect `ApiKeysService` to `HomeController`, `WikiController`, `OrdersController`, `BlogsController`, `PetsController`, `RevalidationService`, `UsersService`, `src/services/api.ts`, `auth.controller.ts`?**
|
||||
_High betweenness centrality (0.076) - this node is a cross-community bridge._
|
||||
- **Why does `Roles()` connect `Roles` to `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `SslController`, `BannersService`, `RevalidationService`, `CreateReviewDto`, `TestimonialsService`, `IngredientsService`, `JwtAuthGuard`, `PrescriptionsService`, `SmartAdvisorService`, `MenuService`?**
|
||||
_High betweenness centrality (0.066) - this node is a cross-community bridge._
|
||||
- **Why does `PrismaService` connect `PrismaService` to `HomeController`, `app.module.ts`, `ApiKeysService`, `CmsController`, `tickets.controller.ts`, `SmsService`, `UsersService`, `DoctorQueryDto`, `torob.controller.ts`, `CreateVideoDto`, `MenuService`, `OrdersService`, `WholesaleService`, `B2BService`, `ContactService`, `FaqService`, `ZibalService`, `CategoriesController`, `MediaController`, `ZibalEBankService`, `BannersService`, `TestimonialsService`, `IngredientsService`, `CreateApiKeyDto`, `PrescriptionsService`, `SmartAdvisorService`, `MetricsController`, `admin.module.ts`, `admin.service.ts`, `OrdersController`, `PetsController`, `RevalidationService`, `reviews.service.ts`, `seo.module.ts`, `zibal.service.ts`, `PaginationDto`, `auth.service.ts`?**
|
||||
_High betweenness centrality (0.031) - this node is a cross-community bridge._
|
||||
- **What connects `$schema`, `collection`, `sourceRoot` to the rest of the system?**
|
||||
_1354 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
_1356 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `app.module.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05764145954521417 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06516290726817042 - nodes in this community are weakly interconnected._
|
||||
- **Should `ApiKeysService` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.07422402159244265 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.09195402298850575 - nodes in this community are weakly interconnected._
|
||||
- **Should `productService.ts` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.061018437225636525 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06187202538339503 - nodes in this community are weakly interconnected._
|
||||
@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_sql", "label": "migration.sql", "file_type": "code", "source_file": "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql", "source_location": null}, {"id": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_ui_texts", "label": "\"ui_texts\"", "file_type": "code", "source_file": "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql", "source_location": "L2"}, {"id": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_scientific_terms", "label": "\"scientific_terms\"", "file_type": "code", "source_file": "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql", "source_location": "L10"}], "edges": [{"source": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_sql", "target": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_ui_texts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql", "source_location": "L2", "weight": 1.0}, {"source": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_sql", "target": "$graphify-root$_backend_prisma_migrations_20260526160916_add_ui_texts_and_scientific_terms_migration_scientific_terms", "relation": "contains", "confidence": "EXTRACTED", "source_file": "backend/prisma/migrations/20260526160916_add_ui_texts_and_scientific_terms/migration.sql", "source_location": "L10", "weight": 1.0}]}
|
||||
File diff suppressed because one or more lines are too long
2
graphify-out/cache/stat-index.json
vendored
2
graphify-out/cache/stat-index.json
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user