feat(logging): implement log pruning functionality
- Add LogPruneService to handle the deletion of old logs based on retention settings. - Create PruneLogsCommand to provide a console command for log pruning. - Introduce PruneLogsMessage and PruneLogsHandler for message handling related to log pruning. - Update the AST cache with new classes and their relationships.
This commit is contained in:
+98
-113
@@ -1,16 +1,16 @@
|
||||
# Graph Report - clinicpro (2026-07-01)
|
||||
|
||||
## Corpus Check
|
||||
- 668 files · ~472,125 words
|
||||
- 672 files · ~472,879 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 8432 nodes · 11619 edges · 679 communities (551 shown, 128 thin omitted)
|
||||
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 264 edges (avg confidence: 0.8)
|
||||
- 8457 nodes · 11652 edges · 680 communities (547 shown, 133 thin omitted)
|
||||
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 265 edges (avg confidence: 0.8)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `31201322`
|
||||
- Built from commit: `a31e8b43`
|
||||
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||||
- Run `graphify update .` after code changes (no API cost).
|
||||
|
||||
@@ -679,6 +679,7 @@
|
||||
- [[_COMMUNITY_Community 676|Community 676]]
|
||||
- [[_COMMUNITY_Community 677|Community 677]]
|
||||
- [[_COMMUNITY_Community 678|Community 678]]
|
||||
- [[_COMMUNITY_Community 679|Community 679]]
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `BaseController` - 76 edges
|
||||
@@ -688,46 +689,46 @@
|
||||
5. `Clinic` - 50 edges
|
||||
6. `Doctor` - 48 edges
|
||||
7. `useAuthStore` - 43 edges
|
||||
8. `ApiResponse` - 40 edges
|
||||
8. `ApiResponse` - 41 edges
|
||||
9. `formatDate()` - 39 edges
|
||||
10. `formatRial()` - 36 edges
|
||||
10. `AdminApiController` - 37 edges
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `ServiceTariffModal()` --calls--> `formatNumber()` [EXTRACTED]
|
||||
assets/admin/components/ServiceTariffModal.tsx → assets/admin/lib/utils.ts
|
||||
- `PersianDatePicker()` --calls--> `formatDate()` [EXTRACTED]
|
||||
assets/admin/components/ui/PersianDatePicker.tsx → assets/admin/lib/utils.ts
|
||||
- `LogsPage()` --calls--> `formatDateTime()` [EXTRACTED]
|
||||
assets/admin/pages/LogsPage.tsx → assets/admin/lib/utils.ts
|
||||
- `SmsPage()` --calls--> `formatDateTime()` [EXTRACTED]
|
||||
assets/admin/pages/SmsPage.tsx → assets/admin/lib/utils.ts
|
||||
- `NewAppointmentModal()` --calls--> `useAuthStore` [EXTRACTED]
|
||||
assets/admin/pages/AppointmentsPage.tsx → assets/admin/stores/authStore.ts
|
||||
- `LogoUploadField()` --calls--> `useAuthStore` [EXTRACTED]
|
||||
assets/admin/pages/CategoriesPage.tsx → assets/admin/stores/authStore.ts
|
||||
|
||||
## Import Cycles
|
||||
- None detected.
|
||||
|
||||
## Communities (679 total, 128 thin omitted)
|
||||
## Communities (680 total, 133 thin omitted)
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.05
|
||||
Nodes (40): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), RoleRoute(), queryClient, toastStyle, LogoUploadField(), TabActions() (+32 more)
|
||||
Nodes (37): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), RoleRoute(), queryClient, toastStyle, AddForm, addSchema (+29 more)
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.03
|
||||
Nodes (41): AddressData, AddrForm, addrSchema, AVATAR_COLORS, BookingMeta, CityOpt, DateOverrideData, DEFAULT_BOOKING_META (+33 more)
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.06
|
||||
Nodes (26): get, api, ApiError, getToken(), refreshOnce(), request(), { refreshMock, logoutMock }, replaceMock (+18 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (26): get, PaymentConfig, PaymentGatewayInfo, api, ApiError, getToken(), refreshOnce(), request() (+18 more)
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.05
|
||||
Nodes (50): ApiResponse, PaginatedResponse, formatDate(), ALL_STATUSES, AppointmentDetailPage(), STATUS_FILTERS, FILTERS, Breakdown (+42 more)
|
||||
Cohesion: 0.03
|
||||
Nodes (80): ApiResponse, PaginatedResponse, formatDate(), ALL_STATUSES, AppointmentDetailPage(), STATUS_FILTERS, FILTERS, Breakdown (+72 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.05
|
||||
Nodes (11): DoctorServiceController, DoctorService, Doctor, DoctorServiceRepository, Collection, self, User, WeeklySchedule (+3 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (8): DoctorService, Doctor, DoctorServiceRepository, Collection, self, User, WeeklySchedule, ManagerRegistry
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.07
|
||||
@@ -754,28 +755,28 @@ Cohesion: 0.04
|
||||
Nodes (46): Clinic Address Management, Clinic API, DELETE `/api/v1/admin/clinic/{clinicUuid}/doctor/{doctorUuid}`, `DELETE /api/v1/clinic/{clinicUuid}/address/{addressUuid}`, Errors, Errors, Errors, Errors (+38 more)
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.06
|
||||
Nodes (38): PaymentConfig, PaymentGatewayInfo, usePaymentConfig(), SmsPage(), STATUS_LOG_META, Tab, TAG_FILTER_OPTIONS, TAG_LABELS (+30 more)
|
||||
Cohesion: 0.33
|
||||
Nodes (4): BlogController, JsonResponse, Request, User
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.05
|
||||
Nodes (44): Clinic Doctor Invitation API, DELETE `/api/v1/admin/clinic/invitation/{invUuid}`, Errors, Errors, Errors, Errors, Errors, Errors (+36 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.07
|
||||
Nodes (37): FreeVisitPrice(), Pricing, cn(), formatDateTime(), formatRial(), iranMobileOptionalSchema, iranMobileSchema, isValidIranMobile() (+29 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (35): FreeVisitPrice(), Pricing, usePaymentConfig(), formatDateTime(), formatRial(), InsurancePricingPage(), LogsPage(), FinancialSummary (+27 more)
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.15
|
||||
Nodes (8): AppointmentSettingsController, Holiday, HolidayRepository, JsonResponse, Request, User, Doctor, ManagerRegistry
|
||||
|
||||
### Community 15 - "Community 15"
|
||||
Cohesion: 0.09
|
||||
Nodes (13): PaymentController, MellatGateway, MockGateway, JsonResponse, Payment, PaymentGatewayInterface, Request, Response (+5 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (16): PaymentController, MellatGateway, MockGateway, SepGateway, JsonResponse, Payment, PaymentGatewayInterface, Request (+8 more)
|
||||
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.06
|
||||
Nodes (8): PatientSession, SmsWallet, AppointmentExpiryService, Appointment, Collection, PatientRecord, self, SessionService
|
||||
Cohesion: 0.07
|
||||
Nodes (7): PatientSession, SmsWallet, Appointment, Collection, PatientRecord, self, SessionService
|
||||
|
||||
### Community 17 - "Community 17"
|
||||
Cohesion: 0.05
|
||||
@@ -798,8 +799,8 @@ Cohesion: 0.05
|
||||
Nodes (37): formatNumber(), ClinicDetailPage(), AdminCharts, AdminDashboard(), AdminRecent, AdminStats, APPT_CLS, APPT_COLOR (+29 more)
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.09
|
||||
Nodes (15): RatingController, Like, Rate, CommentListNPlusOneTest, LikeRepository, RateRepository, JsonResponse, Request (+7 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (9): RatingController, Like, LikeRepository, JsonResponse, Request, User, Comment, ManagerRegistry (+1 more)
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.05
|
||||
@@ -814,8 +815,8 @@ Cohesion: 0.05
|
||||
Nodes (39): Appointment API, Error Responses, Errors, Errors, Errors, Errors, Errors, Errors (+31 more)
|
||||
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.24
|
||||
Nodes (4): InsuranceController, JsonResponse, Request, User
|
||||
Cohesion: 0.15
|
||||
Nodes (7): InsuranceController, EntityInsurancePricing, EntityInsurancePricingRepository, JsonResponse, Request, User, ManagerRegistry
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.05
|
||||
@@ -826,8 +827,8 @@ Cohesion: 0.09
|
||||
Nodes (4): Appointment, Doctor, self, User
|
||||
|
||||
### Community 29 - "Community 29"
|
||||
Cohesion: 0.10
|
||||
Nodes (21): Bulk import / export, DELETE `/api/v1/admin/city/{id}`, DELETE `/api/v1/admin/province/{id}`, Errors, Errors, GET `/api/v1/admin/provinces`, GET `/api/v1/categorys/{bundle}` *(Legacy)*, GET `/api/v1/provinces` (+13 more)
|
||||
Cohesion: 0.06
|
||||
Nodes (35): Bulk import / export, DELETE `/api/v1/admin/city/{id}`, DELETE `/api/v1/admin/province/{id}`, Errors, Errors, Errors, Errors, GET `/api/v1/admin/cities` (+27 more)
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
Cohesion: 0.08
|
||||
@@ -842,8 +843,8 @@ Cohesion: 0.06
|
||||
Nodes (32): 10. Modal / Dialog, 11. Toast Notifications, 12. Empty States & Loading, 13. Page Header (هر صفحه), 14. تکنولوژی Stack, 15. Responsive Breakpoints, 16. Dark Mode (اختیاری — فاز دوم), 17. نمونه رنگبندی صفحه داشبورد (+24 more)
|
||||
|
||||
### Community 33 - "Community 33"
|
||||
Cohesion: 0.04
|
||||
Nodes (40): CoverageRow, Draft, KIND, TenantInsurance, ServiceTariffModal(), TariffResponse, TariffRow, Contract (+32 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (20): CoverageRow, Draft, KIND, TenantInsurance, ServiceTariffModal(), TariffResponse, TariffRow, EMPTY_ITEMS (+12 more)
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.06
|
||||
@@ -874,8 +875,8 @@ Cohesion: 0.09
|
||||
Nodes (4): User, PasswordAuthenticatedUserInterface, self, UserInterface
|
||||
|
||||
### Community 41 - "Community 41"
|
||||
Cohesion: 0.06
|
||||
Nodes (21): CityForm, citySchema, ImportError, InsuranceForm, insuranceSchema, ProvinceForm, provinceSchema, ServiceForm (+13 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (29): Contract, InsuranceOption, KIND_LABEL, CityForm, citySchema, ImportError, InsuranceForm, insuranceSchema (+21 more)
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 0.07
|
||||
@@ -922,8 +923,8 @@ Cohesion: 0.07
|
||||
Nodes (26): الزامات UI, باگفیکس صفحه نوبتها, باگ ۱ — کرش تقویم, باگ ۲ — روز هفته در DateNavigator, باگ ۳ — پیام «slot نیست», باگ ۴ — نوبت جدید: نام اجباری + find-or-create patient, باگ ۵ — patient_mobile نشان میدهد موبایل پزشک, باگ ۶ — نوبتهای رزرو شده در نمایش زمانبندی (+18 more)
|
||||
|
||||
### Community 53 - "Community 53"
|
||||
Cohesion: 0.08
|
||||
Nodes (15): AppLogRepository, CityRepository, ClaimItemRepository, InvoiceItemRepository, PreRegistrationRepository, SiteConfigRepository, ServiceEntityRepository, ManagerRegistry (+7 more)
|
||||
Cohesion: 0.09
|
||||
Nodes (12): AppLogRepository, ClaimItemRepository, PreRegistrationRepository, SiteConfigRepository, TaxRateHistoryRepository, ServiceEntityRepository, ManagerRegistry, ManagerRegistry (+4 more)
|
||||
|
||||
### Community 54 - "Community 54"
|
||||
Cohesion: 0.10
|
||||
@@ -942,8 +943,8 @@ Cohesion: 0.08
|
||||
Nodes (24): Blog API, DELETE `/api/v1/blog/{uuid}`, Errors, Errors, Errors, Errors, Errors, GET `/api/v1/blog/{slug}` (+16 more)
|
||||
|
||||
### Community 58 - "Community 58"
|
||||
Cohesion: 0.15
|
||||
Nodes (8): Blog, BlogController, BlogRepository, JsonResponse, Request, User, ManagerRegistry, QueryBuilder
|
||||
Cohesion: 0.28
|
||||
Nodes (4): Blog, BlogRepository, ManagerRegistry, QueryBuilder
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 0.22
|
||||
@@ -966,8 +967,8 @@ Cohesion: 0.22
|
||||
Nodes (5): AuthController, RateLimiterFactory, JsonResponse, Request, User
|
||||
|
||||
### Community 64 - "Community 64"
|
||||
Cohesion: 0.32
|
||||
Nodes (4): SmsWalletController, JsonResponse, Request, User
|
||||
Cohesion: 0.20
|
||||
Nodes (7): SmsWalletController, SmsSettingsRepository, SmsSettings, JsonResponse, Request, User, ManagerRegistry
|
||||
|
||||
### Community 65 - "Community 65"
|
||||
Cohesion: 0.08
|
||||
@@ -1010,8 +1011,8 @@ Cohesion: 0.16
|
||||
Nodes (5): DoctorSecretary, Clinic, Doctor, self, User
|
||||
|
||||
### Community 77 - "Community 77"
|
||||
Cohesion: 0.08
|
||||
Nodes (15): Claim, ClaimItem, DebtRow, InsuranceOption, KIND_LABEL, STATUS_FILTERS, STATUS_META, IbanItem (+7 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (13): Claim, ClaimItem, DebtRow, InsuranceOption, KIND_LABEL, STATUS_FILTERS, STATUS_META, IbanItem (+5 more)
|
||||
|
||||
### Community 78 - "Community 78"
|
||||
Cohesion: 0.12
|
||||
@@ -1039,7 +1040,7 @@ Nodes (29): devDependencies, @babel/core, @babel/preset-env, @babel/preset-react
|
||||
|
||||
### Community 86 - "Community 86"
|
||||
Cohesion: 0.06
|
||||
Nodes (15): AppointmentExpiryServiceTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, ServiceItemStaffOwnershipTest, EntityManagerInterface, KernelBrowser, CommentPaginationTest (+7 more)
|
||||
Nodes (15): AppointmentExpiryServiceTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, ServiceItemDeleteCleanupTest, ServiceItemStaffOwnershipTest, EntityManagerInterface, KernelBrowser (+7 more)
|
||||
|
||||
### Community 87 - "Community 87"
|
||||
Cohesion: 0.10
|
||||
@@ -1126,8 +1127,8 @@ Cohesion: 0.32
|
||||
Nodes (6): AppointmentController, Appointment, Doctor, JsonResponse, Request, User
|
||||
|
||||
### Community 108 - "Community 108"
|
||||
Cohesion: 0.13
|
||||
Nodes (10): BaseController, CategoryController, CategoryImportController, SmsMessageController, JsonResponse, JsonResponse, Request, JsonResponse (+2 more)
|
||||
Cohesion: 0.12
|
||||
Nodes (12): AbstractController, AdminController, BaseController, CategoryController, CategoryImportController, HomeController, Response, JsonResponse (+4 more)
|
||||
|
||||
### Community 109 - "Community 109"
|
||||
Cohesion: 0.29
|
||||
@@ -1327,7 +1328,7 @@ Nodes (15): Date Overrides, DELETE `/api/v1/appointment-settings/date-override/{
|
||||
|
||||
### Community 161 - "Community 161"
|
||||
Cohesion: 0.24
|
||||
Nodes (7): ClaimSubmitterInterface, ClaimService, ManualClaimSubmitter, Claim, Invoice, Claim, ClaimSubmissionResult
|
||||
Nodes (5): ClaimsListNPlusOneTest, ClaimItem, ClaimService, Claim, Invoice
|
||||
|
||||
### Community 162 - "Community 162"
|
||||
Cohesion: 0.13
|
||||
@@ -1474,12 +1475,12 @@ Cohesion: 0.14
|
||||
Nodes (13): Endpoint ها, PATCH /api/v1/secretary/{uuid}, POST /api/v1/secretary, تسک ۱۴: ماژول منشی, توضیح, زمان تخمینی, ساختار JSON, سیستم مجوزها — Resource-Based Permissions (مقیاسپذیر) (+5 more)
|
||||
|
||||
### Community 201 - "Community 201"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): Admin API, Clinic Invitation Management, GET `/api/v1/admin/representations`, GET `/api/v1/admin/secretaries`, GET /api/v1/admin/settings, PATCH /api/v1/admin/settings, Query Parameters, Query Parameters (+5 more)
|
||||
Cohesion: 0.20
|
||||
Nodes (10): Admin API, Clinic Invitation Management, GET `/api/v1/admin/comments`, GET `/api/v1/admin/rates`, GET /api/v1/admin/settings, PATCH /api/v1/admin/settings, Query Parameters, Query Parameters (+2 more)
|
||||
|
||||
### Community 202 - "Community 202"
|
||||
Cohesion: 0.15
|
||||
Nodes (13): DELETE `/api/v1/appointment-settings/holidays/{uuid}`, Errors, GET `/api/v1/appointment-settings/holidays/list/{doctorUuid}`, GET `/api/v1/appointment-settings/holidays/{uuid}`, Holidays, PATCH `/api/v1/appointment-settings/holidays/{uuid}`, POST `/api/v1/appointment-settings/holidays`, Request Body (+5 more)
|
||||
Cohesion: 0.10
|
||||
Nodes (19): Appointment Settings API, Available Locations, DELETE `/api/v1/appointment-settings/holidays/{uuid}`, Errors, Errors, `GET /api/v1/appointment-settings/available-locations/{doctorUuid}`, GET `/api/v1/appointment-settings/holidays/list/{doctorUuid}`, GET `/api/v1/appointment-settings/holidays/{uuid}` (+11 more)
|
||||
|
||||
### Community 203 - "Community 203"
|
||||
Cohesion: 0.15
|
||||
@@ -1490,8 +1491,8 @@ Cohesion: 0.21
|
||||
Nodes (6): AuthenticationException, ExceptionSubscriber, SecurityHeadersSubscriber, EventSubscriberInterface, ExceptionEvent, ResponseEvent
|
||||
|
||||
### Community 205 - "Community 205"
|
||||
Cohesion: 0.13
|
||||
Nodes (13): Command, CancelExpiredAppointmentsCommand, CreateAdminCommand, SeedCategoriesCommand, SeedSmsMessageTemplatesCommand, InputInterface, OutputInterface, InputInterface (+5 more)
|
||||
Cohesion: 0.07
|
||||
Nodes (20): Command, CancelExpiredAppointmentsCommand, CreateAdminCommand, PruneLogsCommand, SeedCategoriesCommand, SeedSmsMessageTemplatesCommand, SmsMessageTemplateRepository, SmsTextResolver (+12 more)
|
||||
|
||||
### Community 206 - "Community 206"
|
||||
Cohesion: 0.35
|
||||
@@ -1566,8 +1567,8 @@ Cohesion: 0.30
|
||||
Nodes (6): AbstractAuthenticator, Passport, PasswordAuthenticator, Request, Response, TokenInterface
|
||||
|
||||
### Community 228 - "Community 228"
|
||||
Cohesion: 0.05
|
||||
Nodes (43): Bulk import / export, DELETE `/api/v1/admin/insurance/{id}`, DELETE `/api/v1/billing/tenant-insurances/{uuid}`, DELETE `/api/v1/insurance/{id}`, EntityInsurancePricing — قیمتگذاری ویزیت بر اساس بیمه, Errors, Errors, Errors (+35 more)
|
||||
Cohesion: 0.04
|
||||
Nodes (47): Bulk import / export, DELETE `/api/v1/admin/insurance/{id}`, DELETE `/api/v1/billing/tenant-insurances/{uuid}`, DELETE `/api/v1/insurance/{id}`, EntityInsurancePricing — قیمتگذاری ویزیت بر اساس بیمه, Errors, Errors, Errors (+39 more)
|
||||
|
||||
### Community 229 - "Community 229"
|
||||
Cohesion: 0.15
|
||||
@@ -1674,8 +1675,8 @@ Cohesion: 0.29
|
||||
Nodes (3): FinancialBreakdown, Payment, User
|
||||
|
||||
### Community 258 - "Community 258"
|
||||
Cohesion: 0.22
|
||||
Nodes (5): ExpireAppointmentsMessage, ExpireAppointmentsHandler, ScheduleProviderInterface, Schedule, SymfonySchedule
|
||||
Cohesion: 0.15
|
||||
Nodes (7): ExpireAppointmentsMessage, ExpireAppointmentsHandler, PruneLogsHandler, PruneLogsMessage, ScheduleProviderInterface, Schedule, SymfonySchedule
|
||||
|
||||
### Community 259 - "Community 259"
|
||||
Cohesion: 0.18
|
||||
@@ -1702,8 +1703,8 @@ Cohesion: 0.33
|
||||
Nodes (4): RepresentationRepository, ManagerRegistry, Representation, User
|
||||
|
||||
### Community 265 - "Community 265"
|
||||
Cohesion: 0.15
|
||||
Nodes (17): calcFinalPrice(), EMPTY_RECORDS, EMPTY_SESSIONS, fileNumber(), getPatientName(), getPatientPhone(), InsurancePricing, MyPatientsPageInner() (+9 more)
|
||||
Cohesion: 0.08
|
||||
Nodes (27): calcFinalPrice(), EMPTY_RECORDS, EMPTY_SESSIONS, fileNumber(), getPatientName(), getPatientPhone(), InsurancePricing, MyPatientsPageInner() (+19 more)
|
||||
|
||||
### Community 266 - "Community 266"
|
||||
Cohesion: 0.33
|
||||
@@ -1738,7 +1739,7 @@ Cohesion: 0.18
|
||||
Nodes (10): Endpoint های موجود که تغییر میکنند, GET /api/v1/admin/dashboard/charts?from=UNIX&to=UNIX, GET /api/v1/dashboard/clinic, GET /api/v1/dashboard/doctor, تسک ۱۶: داشبورد هوشمند — چارت + فیلتر زمانی, توضیح, زمان تخمینی, فیلتر بازه زمانی (+2 more)
|
||||
|
||||
### Community 274 - "Community 274"
|
||||
Cohesion: 0.21
|
||||
Cohesion: 0.20
|
||||
Nodes (5): Authentication, ClinicPro — API Documentation Index, Error Code Reference, Modules, Standard Response Envelope
|
||||
|
||||
### Community 275 - "Community 275"
|
||||
@@ -1818,8 +1819,8 @@ Cohesion: 0.24
|
||||
Nodes (10): gridItemStyle, JALALI_MONTHS, jalaliFirstWeekday(), jalaliToGregorian(), navBtnStyle, PersianCalendar(), pf, Props (+2 more)
|
||||
|
||||
### Community 295 - "Community 295"
|
||||
Cohesion: 0.22
|
||||
Nodes (8): AbstractController, AdminController, HomeController, SeoController, Response, Response, Request, Response
|
||||
Cohesion: 0.57
|
||||
Nodes (3): SeoController, Request, Response
|
||||
|
||||
### Community 296 - "Community 296"
|
||||
Cohesion: 0.22
|
||||
@@ -1855,7 +1856,7 @@ Nodes (16): آمادهسازی پروژه ClinicPro برای دیپلوی ر
|
||||
|
||||
### Community 304 - "Community 304"
|
||||
Cohesion: 0.22
|
||||
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 33. 🔵 `POST` image_clinic, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخها, پاسخها (+1 more)
|
||||
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 36. 🟢 `GET` get my rate, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخها, پاسخها (+1 more)
|
||||
|
||||
### Community 306 - "Community 306"
|
||||
Cohesion: 0.07
|
||||
@@ -2022,8 +2023,8 @@ Cohesion: 0.50
|
||||
Nodes (4): UserActiveContextRepository, ManagerRegistry, User, UserActiveContext
|
||||
|
||||
### Community 352 - "Community 352"
|
||||
Cohesion: 0.25
|
||||
Nodes (4): SmsMessageTemplateRepository, SmsTextResolver, SmsMessageTemplate, ManagerRegistry
|
||||
Cohesion: 0.36
|
||||
Nodes (3): DoctorServiceController, JsonResponse, Request
|
||||
|
||||
### Community 354 - "Community 354"
|
||||
Cohesion: 0.36
|
||||
@@ -2186,8 +2187,8 @@ Cohesion: 0.33
|
||||
Nodes (6): Refactoring Plan, فاز ۰ — مستندسازی (۳ تا ۵ روز، قبل از هر کدنویسی), فاز ۱ — زیرساخت پایه (task-01), فاز ۲ — پیادهسازی ماژولها (به ترتیب dependency), فاز ۳ — بهینهسازی (بعد از پیادهسازی), فاز ۴ — آمادهسازی تولید
|
||||
|
||||
### Community 397 - "Community 397"
|
||||
Cohesion: 0.21
|
||||
Nodes (6): ClaimAmountBoundsTest, ClaimsListNPlusOneTest, ClaimItem, Claim, Doctor, User
|
||||
Cohesion: 0.36
|
||||
Nodes (4): ClaimAmountBoundsTest, Claim, Doctor, User
|
||||
|
||||
### Community 398 - "Community 398"
|
||||
Cohesion: 0.29
|
||||
@@ -2214,20 +2215,20 @@ Cohesion: 0.11
|
||||
Nodes (18): [F10] راهنمای کهنه در `CLAUDE.md`: endpoint `categorys/{bundle}` منتقل شده, [F11] داشبورد دکتر `GET /api/v1/dashboard/doctor` همیشه 500 (فیلد ناموجود در DQL) — ✅ رفع شد, [F1] phpstan: مقایسهٔ همیشهدرست در محاسبهٔ estimated SMS — ✅ رفع شد, [F2] تستهای PHPUnit به API خارجی Kavenegar درخواست واقعی میزنند, [F3] دیتابیس تست seed نشده — فقط کاربر ادمین وجود دارد, [F4] اسکریپت seeder `create_test_users.php` وجود ندارد, [F5] ادمین با JWT معتبر به `/api/doc` (Swagger UI) دسترسی ندارد (401), [F6] ناسازگاری کدهای خطا بین دامنهها (+10 more)
|
||||
|
||||
### Community 452 - "Community 452"
|
||||
Cohesion: 0.08
|
||||
Nodes (16): ClinicAddress, ClinicDoctorItem, ClinicInvitation, EditForm, editSchema, HUES_LIST, INV_STATUS_MAP, IRAN_CENTER (+8 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (34): cn(), iranMobileOptionalSchema, iranMobileSchema, isValidIranMobile(), maskMobile(), sanitizeMobileInput(), toDate(), toEnglishDigits() (+26 more)
|
||||
|
||||
### Community 456 - "Community 456"
|
||||
Cohesion: 0.29
|
||||
Nodes (6): Appointment Settings API, Available Locations, Errors, `GET /api/v1/appointment-settings/available-locations/{doctorUuid}`, Response `200`, Slot Calculation Logic (Reference)
|
||||
Cohesion: 0.38
|
||||
Nodes (5): Rate, RateRepository, Doctor, ManagerRegistry, User
|
||||
|
||||
### Community 458 - "Community 458"
|
||||
Cohesion: 0.47
|
||||
Nodes (6): formatPersianDate(), gToJ(), jFirstDayOfWeek(), PersianDateInput(), todayGregorian(), toPersianNums()
|
||||
|
||||
### Community 459 - "Community 459"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): API موجود (نیاز به تغییر ندارند), اپیک ۳ — منشی (Secretary) — تکمیل, تغییرات مورد نیاز, توضیح, نیازمندیهای کارکردی
|
||||
Cohesion: 0.33
|
||||
Nodes (6): API موجود (نیاز به تغییر ندارند), اپیکها, اپیک ۳ — منشی (Secretary) — تکمیل, تغییرات مورد نیاز, توضیح, نیازمندیهای کارکردی
|
||||
|
||||
### Community 460 - "Community 460"
|
||||
Cohesion: 0.33
|
||||
@@ -2294,8 +2295,8 @@ Cohesion: 0.33
|
||||
Nodes (5): ایندکسها, جدول: sms_accounts (حساب پیامک), جدول: sms_queue (صف پیامک), نکات مهم, پایگاه داده — تسک ۱۷: ماژول پیامک
|
||||
|
||||
### Community 478 - "Community 478"
|
||||
Cohesion: 0.40
|
||||
Nodes (5): GET `/api/v1/admin/comments`, GET `/api/v1/admin/rates`, Query Parameters, Query Parameters, Rating & Comment Management
|
||||
Cohesion: 0.39
|
||||
Nodes (3): CityRepository, City, ManagerRegistry
|
||||
|
||||
### Community 479 - "Community 479"
|
||||
Cohesion: 0.40
|
||||
@@ -2330,8 +2331,8 @@ Cohesion: 0.40
|
||||
Nodes (5): Admin Endpoints, GET /api/v1/admin/sms/settings/review, GET /api/v1/admin/sms/wallet-report, POST /api/v1/admin/sms/settings/{id}/approve, POST /api/v1/admin/sms/settings/{id}/reject
|
||||
|
||||
### Community 491 - "Community 491"
|
||||
Cohesion: 0.15
|
||||
Nodes (5): EntityInsurancePricing, TenantInsuranceCleanupTest, EntityInsurancePricingRepository, TenantInsuranceCleanupService, ManagerRegistry
|
||||
Cohesion: 0.43
|
||||
Nodes (3): SmsMessageController, JsonResponse, Request
|
||||
|
||||
### Community 493 - "Community 493"
|
||||
Cohesion: 0.20
|
||||
@@ -2362,8 +2363,8 @@ Cohesion: 0.40
|
||||
Nodes (5): addMinutes(), calcSlotCount(), hasOverlap(), parseMinutes(), SessionEditor()
|
||||
|
||||
### Community 500 - "Community 500"
|
||||
Cohesion: 0.33
|
||||
Nodes (6): API موجود (نیاز به endpoint جدید ندارد), اپیکها, اپیک ۷ — داشبورد هوشمند (Smart Dashboard), تغییر مورد نیاز, توضیح, نیازمندیهای کارکردی
|
||||
Cohesion: 0.40
|
||||
Nodes (5): API موجود (نیاز به endpoint جدید ندارد), اپیک ۷ — داشبورد هوشمند (Smart Dashboard), تغییر مورد نیاز, توضیح, نیازمندیهای کارکردی
|
||||
|
||||
### Community 501 - "Community 501"
|
||||
Cohesion: 0.40
|
||||
@@ -2502,8 +2503,8 @@ Cohesion: 0.67
|
||||
Nodes (3): Errors, GET `/api/v1/notification-mobile/{target}`, Response `200`
|
||||
|
||||
### Community 540 - "Community 540"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): Errors, POST `/api/v1/admin/insurance`, Request Body (`application/json`), Response `201`
|
||||
Cohesion: 0.43
|
||||
Nodes (3): InvoiceItemRepository, InvoiceItem, ManagerRegistry
|
||||
|
||||
### Community 542 - "Community 542"
|
||||
Cohesion: 0.15
|
||||
@@ -2666,8 +2667,8 @@ Cohesion: 0.20
|
||||
Nodes (10): Configuration, DELETE `/api/v1/sms/template/{uuid}`, Errors, Errors, GET `/api/v1/admin/sms/templates`, GET `/api/v1/sms/template/{uuid}`, Response `200`, Response `200` (+2 more)
|
||||
|
||||
### Community 598 - "Community 598"
|
||||
Cohesion: 0.31
|
||||
Nodes (3): SepGateway, PaymentInitResult, PaymentVerifyResult
|
||||
Cohesion: 0.53
|
||||
Nodes (4): ClaimSubmitterInterface, ManualClaimSubmitter, Claim, ClaimSubmissionResult
|
||||
|
||||
### Community 599 - "Community 599"
|
||||
Cohesion: 0.67
|
||||
@@ -2706,8 +2707,8 @@ Cohesion: 0.67
|
||||
Nodes (3): بکاند, فرانتاند, وضعیت فعلی کد (مهم — قبل از تغییر بخوان)
|
||||
|
||||
### Community 618 - "Community 618"
|
||||
Cohesion: 0.16
|
||||
Nodes (5): ServiceItemDeleteCleanupTest, ServiceCoverageNPlusOneTest, TenantServiceCoverageRepository, ManagerRegistry, TenantServiceCoverage
|
||||
Cohesion: 0.12
|
||||
Nodes (6): ServiceCoverageNPlusOneTest, TenantInsuranceCleanupTest, TenantServiceCoverageRepository, TenantInsuranceCleanupService, ManagerRegistry, TenantServiceCoverage
|
||||
|
||||
### Community 631 - "Community 631"
|
||||
Cohesion: 0.50
|
||||
@@ -2729,10 +2730,6 @@ Nodes (8): ۲.۲ انواع دستهبندی (Category Types), ۲.۲.۱ تگ
|
||||
Cohesion: 0.43
|
||||
Nodes (5): BeforeInstallPromptEvent, usePwaInstall(), PwaInstallBanner(), detectIOS(), PwaLoginCard()
|
||||
|
||||
### Community 636 - "Community 636"
|
||||
Cohesion: 0.48
|
||||
Nodes (3): SmsSettingsRepository, SmsSettings, ManagerRegistry
|
||||
|
||||
### Community 638 - "Community 638"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): GET `/api/v1/clinic-pro/doctor-addresses/{doctorId}`, Path Parameters, Response `200`
|
||||
@@ -2757,10 +2754,6 @@ Nodes (5): 31. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای
|
||||
Cohesion: 0.40
|
||||
Nodes (5): 32. 🔵 `POST` post, Request Body, مثال Request, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 651 - "Community 651"
|
||||
Cohesion: 0.53
|
||||
Nodes (3): TaxRateHistoryRepository, ManagerRegistry, TaxRateHistory
|
||||
|
||||
### Community 652 - "Community 652"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): GET `/api/v1/admin/pre-registrations`, POST `/api/v1/admin/pre-registrations/{uuid}/approve`, POST `/api/v1/admin/pre-registrations/{uuid}/reject`, Pre-Registration Management
|
||||
@@ -2787,11 +2780,11 @@ Nodes (4): GET `/api/v1/admin/payments`, Payment Management, Query Parameters, R
|
||||
|
||||
### Community 658 - "Community 658"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): Errors, PATCH `/api/v1/admin/province/{id}`, Path Parameters, Response `200`
|
||||
Nodes (4): GET `/api/v1/admin/representations`, Query Parameters, Representation Management, Response `200`
|
||||
|
||||
### Community 659 - "Community 659"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): Errors, POST `/api/v1/admin/city`, Request Body (`application/json`), Response `201`
|
||||
Nodes (4): GET `/api/v1/admin/secretaries`, Query Parameters, Response `200`, Secretary Management
|
||||
|
||||
### Community 660 - "Community 660"
|
||||
Cohesion: 0.50
|
||||
@@ -2802,8 +2795,8 @@ Cohesion: 0.50
|
||||
Nodes (4): 40. 🔵 `POST` post, مثال Request, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 662 - "Community 662"
|
||||
Cohesion: 0.50
|
||||
Nodes (4): Application Logs, GET `/api/v1/admin/logs`, Query Parameters, Response `200`
|
||||
Cohesion: 0.29
|
||||
Nodes (7): Application Logs, DELETE `/api/v1/admin/logs`, GET `/api/v1/admin/logs`, Log Retention, Query Parameters, Response `200`, Response `200`
|
||||
|
||||
### Community 664 - "Community 664"
|
||||
Cohesion: 0.50
|
||||
@@ -2829,21 +2822,13 @@ Nodes (4): ۲.۱۳ نظرات، لایک و امتیازدهی, ۲.۱۳.۱ نظ
|
||||
Cohesion: 0.50
|
||||
Nodes (4): GET `/api/v1/admin/settlements`, Query Parameters, Response `200`, Settlement Management
|
||||
|
||||
### Community 673 - "Community 673"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): GET `/api/v1/admin/cities`, Query Parameters, Response `200`
|
||||
|
||||
### Community 674 - "Community 674"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): GET `/api/v1/cities`, Query Parameters, Response `200`
|
||||
|
||||
### Community 675 - "Community 675"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 34. 🔵 `POST` image logo, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 676 - "Community 676"
|
||||
Cohesion: 0.67
|
||||
Nodes (3): 36. 🟢 `GET` get my rate, هدرهای اضافی, پاسخها
|
||||
Nodes (3): 33. 🔵 `POST` image_clinic, هدرهای اضافی, پاسخها
|
||||
|
||||
### Community 677 - "Community 677"
|
||||
Cohesion: 0.67
|
||||
@@ -2854,24 +2839,24 @@ Cohesion: 0.67
|
||||
Nodes (3): 43. 🟢 `GET` get, هدرهای اضافی, پاسخها
|
||||
|
||||
## Knowledge Gaps
|
||||
- **3640 isolated node(s):** `ALLOWED_ROLES`, `Pricing`, `TenantInsurance`, `CoverageRow`, `Draft` (+3635 more)
|
||||
- **3644 isolated node(s):** `ALLOWED_ROLES`, `Pricing`, `TenantInsurance`, `CoverageRow`, `Draft` (+3639 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **128 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **133 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 `BaseController` connect `Community 108` to `Community 4`, `Community 6`, `Community 138`, `Community 139`, `Community 14`, `Community 15`, `Community 275`, `Community 20`, `Community 22`, `Community 26`, `Community 164`, `Community 295`, `Community 300`, `Community 301`, `Community 175`, `Community 176`, `Community 177`, `Community 58`, `Community 59`, `Community 63`, `Community 64`, `Community 70`, `Community 71`, `Community 75`, `Community 206`, `Community 230`, `Community 103`, `Community 104`, `Community 107`, `Community 109`, `Community 121`, `Community 122`, `Community 252`?**
|
||||
_High betweenness centrality (0.030) - this node is a cross-community bridge._
|
||||
- **Why does `BaseController` connect `Community 108` to `Community 6`, `Community 138`, `Community 11`, `Community 139`, `Community 14`, `Community 15`, `Community 275`, `Community 20`, `Community 22`, `Community 26`, `Community 164`, `Community 300`, `Community 301`, `Community 175`, `Community 176`, `Community 177`, `Community 59`, `Community 63`, `Community 64`, `Community 70`, `Community 71`, `Community 75`, `Community 206`, `Community 352`, `Community 230`, `Community 103`, `Community 104`, `Community 107`, `Community 491`, `Community 109`, `Community 121`, `Community 122`, `Community 252`?**
|
||||
_High betweenness centrality (0.031) - this node is a cross-community bridge._
|
||||
- **Why does `AppointmentRepository` connect `Community 119` to `Community 53`?**
|
||||
_High betweenness centrality (0.017) - this node is a cross-community bridge._
|
||||
_High betweenness centrality (0.021) - this node is a cross-community bridge._
|
||||
- **Why does `Version20260614181657` connect `Community 431` to `Community 399`?**
|
||||
_High betweenness centrality (0.015) - this node is a cross-community bridge._
|
||||
- **What connects `ALLOWED_ROLES`, `Pricing`, `TenantInsurance` to the rest of the system?**
|
||||
_3640 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
_3644 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.05012531328320802 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.054426705370101594 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.028985507246376812 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 2` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.06280193236714976 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.06565656565656566 - nodes in this community are weakly interconnected._
|
||||
Reference in New Issue
Block a user