Add AST JSON representation for PublishScheduledBlogsMessage.php

This commit is contained in:
hamed
2026-07-23 22:26:53 +03:30
parent 0cc51ee54f
commit 21bb434053
20 changed files with 7099 additions and 1594 deletions
+12 -6
View File
@@ -969,44 +969,50 @@
"967": "Community 967",
"968": "Community 968",
"969": "Community 969",
"970": "Community 970",
"971": "Community 971",
"972": "Community 972",
"973": "Community 973",
"974": "Community 974",
"975": "Community 975",
"976": "Community 976",
"977": "Community 977",
"978": "Community 978",
"979": "Community 979",
"980": "Community 980",
"981": "Community 981",
"982": "Community 982",
"983": "Community 983",
"984": "Community 984",
"985": "Community 985",
"986": "Community 986",
"987": "Community 987",
"988": "Community 988",
"989": "Community 989",
"990": "Community 990",
"991": "Community 991",
"992": "Community 992",
"993": "Community 993",
"994": "Community 994",
"995": "Community 995",
"996": "Community 996",
"997": "Community 997",
"998": "Community 998",
"999": "Community 999",
"1000": "Community 1000",
"1001": "Community 1001",
"1002": "Community 1002",
"1003": "Community 1003",
"1004": "Community 1004",
"1005": "Community 1005",
"1006": "Community 1006",
"1007": "Community 1007",
"1008": "Community 1008",
"1009": "Community 1009",
"1010": "Community 1010",
"1015": "Community 1015",
"1016": "Community 1016",
"1017": "Community 1017",
"1018": "Community 1018",
"1019": "Community 1019",
"1020": "Community 1020",
"1021": "Community 1021",
"1022": "Community 1022",
"1023": "Community 1023",
"1024": "Community 1024",
"1025": "Community 1025",
"1026": "Community 1026",
+222 -225
View File
@@ -1,16 +1,16 @@
# Graph Report - clinicpro (2026-07-23)
## Corpus Check
- 1202 files · ~869,182 words
- 1216 files · ~877,691 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 14088 nodes · 22093 edges · 1018 communities (776 shown, 242 thin omitted)
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 465 edges (avg confidence: 0.8)
- 14253 nodes · 22449 edges · 1024 communities (775 shown, 249 thin omitted)
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 468 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `d0fbe204`
- Built from commit: `0cc51ee5`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -968,44 +968,49 @@
- [[_COMMUNITY_Community 967|Community 967]]
- [[_COMMUNITY_Community 968|Community 968]]
- [[_COMMUNITY_Community 969|Community 969]]
- [[_COMMUNITY_Community 970|Community 970]]
- [[_COMMUNITY_Community 971|Community 971]]
- [[_COMMUNITY_Community 972|Community 972]]
- [[_COMMUNITY_Community 973|Community 973]]
- [[_COMMUNITY_Community 974|Community 974]]
- [[_COMMUNITY_Community 975|Community 975]]
- [[_COMMUNITY_Community 976|Community 976]]
- [[_COMMUNITY_Community 977|Community 977]]
- [[_COMMUNITY_Community 978|Community 978]]
- [[_COMMUNITY_Community 979|Community 979]]
- [[_COMMUNITY_Community 980|Community 980]]
- [[_COMMUNITY_Community 981|Community 981]]
- [[_COMMUNITY_Community 982|Community 982]]
- [[_COMMUNITY_Community 983|Community 983]]
- [[_COMMUNITY_Community 984|Community 984]]
- [[_COMMUNITY_Community 985|Community 985]]
- [[_COMMUNITY_Community 986|Community 986]]
- [[_COMMUNITY_Community 987|Community 987]]
- [[_COMMUNITY_Community 988|Community 988]]
- [[_COMMUNITY_Community 989|Community 989]]
- [[_COMMUNITY_Community 990|Community 990]]
- [[_COMMUNITY_Community 991|Community 991]]
- [[_COMMUNITY_Community 992|Community 992]]
- [[_COMMUNITY_Community 993|Community 993]]
- [[_COMMUNITY_Community 994|Community 994]]
- [[_COMMUNITY_Community 995|Community 995]]
- [[_COMMUNITY_Community 996|Community 996]]
- [[_COMMUNITY_Community 997|Community 997]]
- [[_COMMUNITY_Community 998|Community 998]]
- [[_COMMUNITY_Community 999|Community 999]]
- [[_COMMUNITY_Community 1000|Community 1000]]
- [[_COMMUNITY_Community 1001|Community 1001]]
- [[_COMMUNITY_Community 1002|Community 1002]]
- [[_COMMUNITY_Community 1004|Community 1004]]
- [[_COMMUNITY_Community 1005|Community 1005]]
- [[_COMMUNITY_Community 1006|Community 1006]]
- [[_COMMUNITY_Community 1007|Community 1007]]
- [[_COMMUNITY_Community 1008|Community 1008]]
- [[_COMMUNITY_Community 1009|Community 1009]]
- [[_COMMUNITY_Community 1010|Community 1010]]
- [[_COMMUNITY_Community 1015|Community 1015]]
- [[_COMMUNITY_Community 1016|Community 1016]]
- [[_COMMUNITY_Community 1017|Community 1017]]
- [[_COMMUNITY_Community 1018|Community 1018]]
- [[_COMMUNITY_Community 1019|Community 1019]]
- [[_COMMUNITY_Community 1020|Community 1020]]
- [[_COMMUNITY_Community 1021|Community 1021]]
- [[_COMMUNITY_Community 1022|Community 1022]]
- [[_COMMUNITY_Community 1023|Community 1023]]
- [[_COMMUNITY_Community 1024|Community 1024]]
- [[_COMMUNITY_Community 1025|Community 1025]]
- [[_COMMUNITY_Community 1026|Community 1026]]
@@ -1018,41 +1023,41 @@
- [[_COMMUNITY_Community 1034|Community 1034]]
## God Nodes (most connected - your core abstractions)
1. `ApiTestCase` - 232 edges
2. `api` - 138 edges
3. `BaseController` - 96 edges
1. `ApiTestCase` - 236 edges
2. `api` - 141 edges
3. `BaseController` - 98 edges
4. `useAuthStore` - 93 edges
5. `formatRial()` - 92 edges
6. `ApiResponse` - 79 edges
7. `renderWithProviders()` - 68 edges
8. `formatNumber()` - 65 edges
9. `formatDate()` - 65 edges
10. `Doctor` - 62 edges
6. `ApiResponse` - 82 edges
7. `Blog` - 71 edges
8. `renderWithProviders()` - 68 edges
9. `formatDate()` - 67 edges
10. `formatNumber()` - 65 edges
## Surprising Connections (you probably didn't know these)
- `withPage()` --calls--> `S` [INFERRED]
.claude/skills/qa-clinicpro/driver.mjs → assets/admin/components/dashboard/dashboardIcons.tsx
- `shot()` --calls--> `S` [INFERRED]
.claude/skills/redesign-page/driver.mjs → assets/admin/components/dashboard/dashboardIcons.tsx
- `PrivateRoute()` --calls--> `useAuthStore` [EXTRACTED]
assets/admin/App.tsx → assets/admin/stores/authStore.ts
- `PublicRoute()` --calls--> `useAuthStore` [EXTRACTED]
assets/admin/App.tsx → assets/admin/stores/authStore.ts
- `ClinicDoctorsManager()` --calls--> `formatNumber()` [EXTRACTED]
assets/admin/components/ClinicDoctorsManager.tsx → assets/admin/lib/utils.ts
- `DiscountTab()` --calls--> `usePermissions()` [EXTRACTED]
assets/admin/components/DiscountTab.tsx → assets/admin/hooks/usePermissions.ts
- `PatientCaseBanner()` --calls--> `formatDate()` [EXTRACTED]
assets/admin/components/PatientCaseBanner.tsx → assets/admin/lib/utils.ts
- `ServiceItemFormModal()` --calls--> `numericField()` [EXTRACTED]
assets/admin/components/ServiceItemFormModal.tsx → assets/admin/lib/forms.ts
## Import Cycles
- None detected.
## Communities (1018 total, 242 thin omitted)
## Communities (1024 total, 249 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.06
Nodes (19): ClinicAppointmentAccessTest, ClinicDoctorPermissionTest, ClinicDoctorPermissionRepository, ClinicDoctorPermission, ClinicRecordAccessTest, ClinicDoctorPermissionChecker, Clinic, Doctor (+11 more)
Nodes (18): ClinicOwnerScheduleAccessTest, ClinicDoctorPermissionTest, ClinicDoctorPermissionRepository, ClinicDoctorPermission, ClinicRecordAccessTest, ClinicDoctorPermissionChecker, Clinic, Doctor (+10 more)
### Community 1 - "Community 1"
Cohesion: 0.06
Nodes (47): RoleRoute(), EMPTY_CATS, EMPTY_ITEMS, EMPTY_META, EMPTY_PACKAGES, EMPTY_STATS, InventoryItem, InventoryMeta (+39 more)
Cohesion: 0.08
Nodes (32): EMPTY_CATS, EMPTY_ITEMS, EMPTY_META, EMPTY_PACKAGES, EMPTY_STATS, InventoryItem, InventoryMeta, InventoryPackage (+24 more)
### Community 2 - "Community 2"
Cohesion: 0.10
@@ -1075,12 +1080,12 @@ Cohesion: 0.17
Nodes (8): SettlementController, SettlementRepository, Settlement, JsonResponse, Request, User, ManagerRegistry, User
### Community 7 - "Community 7"
Cohesion: 0.05
Nodes (11): DoctorServiceController, DoctorService, Clinic, DoctorServiceRepository, Collection, Doctor, self, User (+3 more)
Cohesion: 0.07
Nodes (5): Clinic, Collection, Doctor, self, User
### Community 8 - "Community 8"
Cohesion: 0.04
Nodes (42): DoctorTab, PickedService, ServicePick, ServiceSlot, ServiceSlotPicker(), get, services, td (+34 more)
Nodes (39): DoctorTab, PickedService, ServicePick, ServiceSlot, ServiceSlotPicker(), get, services, td (+31 more)
### Community 9 - "Community 9"
Cohesion: 0.04
@@ -1091,8 +1096,8 @@ Cohesion: 0.17
Nodes (12): Clinic Address Management, `DELETE /api/v1/clinic/{clinicUuid}/address/{addressUuid}`, Errors, Errors, `GET /api/v1/clinic/{clinicUuid}/addresses`, `PATCH /api/v1/clinic/{clinicUuid}/address/{addressUuid}`, `POST /api/v1/clinic/{clinicUuid}/address`, Removed endpoint (+4 more)
### Community 11 - "Community 11"
Cohesion: 0.04
Nodes (44): ServiceItemFormModal(), numericField(), emptyFeatures(), FEATURE_KEYS, FEATURE_LABELS, PeriodForm, periodSchema, PLAN_DISPLAY (+36 more)
Cohesion: 0.06
Nodes (28): SessionPaymentAccordion(), SessionPaymentData, paid, unpaid, InvoicePaymentRow, InvoiceRowStatus, MY_PAYMENTS_LIMIT, PatientInvoiceRow (+20 more)
### Community 12 - "Community 12"
Cohesion: 0.04
@@ -1100,7 +1105,7 @@ Nodes (49): Account provisioning, Clinic Doctor Invitation API, Console: `app:in
### Community 13 - "Community 13"
Cohesion: 0.02
Nodes (152): appointment, get, post, render(), appt, get, openMenu(), patch (+144 more)
Nodes (125): appointment, get, post, render(), appt, get, openMenu(), patch (+117 more)
### Community 14 - "Community 14"
Cohesion: 0.09
@@ -1111,8 +1116,8 @@ Cohesion: 0.25
Nodes (7): PaymentController, Appointment, JsonResponse, Payment, Request, Response, User
### Community 16 - "Community 16"
Cohesion: 0.05
Nodes (10): AppointmentExpiryServiceTest, PatientSession, Appointment, Collection, InventoryPackage, PatientRecord, self, SessionConsumable (+2 more)
Cohesion: 0.03
Nodes (14): AppointmentExpiryServiceTest, AppointmentUpdateTest, PatientSession, SmsWallet, AppLog, SecretaryAppointmentScopeTest, Appointment, Collection (+6 more)
### Community 17 - "Community 17"
Cohesion: 0.05
@@ -1131,8 +1136,8 @@ Cohesion: 0.12
Nodes (5): AdminApiController, RepresentationRepository, JsonResponse, Request, StreamedResponse
### Community 21 - "Community 21"
Cohesion: 0.03
Nodes (95): Invoice, InvoiceItem, InvoiceSummaryModal(), SessionConsumable, SessionData, SessionPayment, STATUS_LABEL, ServiceTariffModal() (+87 more)
Cohesion: 0.04
Nodes (58): PaymentConfig, PaymentGatewayInfo, usePaymentConfig(), formatRial(), PaymentDetails, PaymentSuccessPage(), IbanItem, RepMe (+50 more)
### Community 22 - "Community 22"
Cohesion: 0.15
@@ -1148,7 +1153,7 @@ Nodes (3): City, Province, self
### Community 25 - "Community 25"
Cohesion: 0.03
Nodes (57): Appointment API, Error Responses, Error Responses, Errors, Errors, Errors, Errors, Errors (+49 more)
Nodes (62): Appointment API, Error Responses, Error Responses, Errors, Errors, Errors, Errors, Errors (+54 more)
### Community 26 - "Community 26"
Cohesion: 0.24
@@ -1179,8 +1184,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.11
Nodes (21): buildInsurancePayload(), Contract, contractToForm(), EMPTY_FORM, InsuranceFormValues, InsuranceModal(), InsuranceOption, KIND_LABEL (+13 more)
Cohesion: 0.10
Nodes (22): ClinicDoctorItem, buildInsurancePayload(), Contract, contractToForm(), EMPTY_FORM, InsuranceFormValues, InsuranceModal(), InsuranceOption (+14 more)
### Community 34 - "Community 34"
Cohesion: 0.05
@@ -1223,8 +1228,8 @@ Cohesion: 0.07
Nodes (28): 2.1 Value Objects, 2.2 Entities (جداول), Claim, Claim, Claim (مطالبه‌ی بیمه), ClaimItem, Invoice, Invoice (+20 more)
### Community 44 - "Community 44"
Cohesion: 0.12
Nodes (4): Blog, City, self, User
Cohesion: 0.06
Nodes (5): Blog, City, Representation, self, User
### Community 45 - "Community 45"
Cohesion: 0.06
@@ -1244,7 +1249,7 @@ Nodes (4): Payment, Appointment, self, User
### Community 49 - "Community 49"
Cohesion: 0.03
Nodes (97): AppointmentInfoModal(), ModalKind, PickedPatient, PickerOption, ReplaceAppointmentModal(), toEpoch(), TransferReserveModal(), WalletChargeLink() (+89 more)
Nodes (96): ConfirmAppointmentModal(), AppointmentInfoModal(), ModalKind, PickedPatient, PickerOption, ReplaceAppointmentModal(), toEpoch(), TransferReserveModal() (+88 more)
### Community 50 - "Community 50"
Cohesion: 0.07
@@ -1260,7 +1265,7 @@ Nodes (26): الزامات UI, باگ‌فیکس صفحه نوبت‌ها, با
### Community 53 - "Community 53"
Cohesion: 0.06
Nodes (20): AppLogRepository, ClaimItemRepository, DoctorClaimRequestRepository, DoctorInsuranceRepository, InvoiceItemRepository, PreRegistrationRepository, ServiceSectionRepository, SiteConfigRepository (+12 more)
Nodes (21): AppLogRepository, ClaimItemRepository, DiscountRuleRepository, DoctorClaimRequestRepository, DoctorInsuranceRepository, InvoiceItemRepository, PreRegistrationRepository, TaxRateHistoryRepository (+13 more)
### Community 54 - "Community 54"
Cohesion: 0.10
@@ -1275,16 +1280,16 @@ Cohesion: 0.08
Nodes (25): Endpoint ها, Fallback Logic, GET /api/v1/sms/balance, GET /api/v1/sms/sample-templates, GET /api/v1/sms/templates, PATCH /api/v1/sms/templates/{uuid}/approve (Admin), PATCH /api/v1/sms/templates/{uuid}/reject (Admin), PATCH /api/v1/sms/templates/{uuid}/submit (+17 more)
### Community 57 - "Community 57"
Cohesion: 0.08
Nodes (25): Blog API, DELETE `/api/v1/blog/{uuid}`, Errors, Errors, Errors, Errors, Errors, GET `/api/v1/blog/{slug}` (+17 more)
Cohesion: 0.05
Nodes (41): Blog API, DELETE `/api/v1/blog/{uuid}`, Errors, Errors, Errors, Errors, Errors, Errors (+33 more)
### Community 58 - "Community 58"
Cohesion: 0.29
Cohesion: 0.26
Nodes (5): BlogController, City, JsonResponse, Request, User
### Community 59 - "Community 59"
Cohesion: 0.05
Nodes (18): ClinicController, SpecialtyController, DoctorSpecialtyParentsTest, Specialty, BackfillSpecialtyParentsStep, SpecialtyRepository, Clinic, DoctorAddress (+10 more)
Cohesion: 0.07
Nodes (14): ClinicController, SpecialtyController, DoctorSpecialtyParentsTest, Specialty, SpecialtyRepository, Clinic, DoctorAddress, JsonResponse (+6 more)
### Community 60 - "Community 60"
Cohesion: 0.08
@@ -1295,16 +1300,16 @@ Cohesion: 0.17
Nodes (12): Add Session Payment (تسویه چندتکه), Create Patient Record, Create Session, Edit Session Payment, Endpoints, Get Patient Record, List Patient Appointments, List Patient Sessions (+4 more)
### Community 62 - "Community 62"
Cohesion: 0.07
Nodes (35): AppointmentLike, ConfirmAppointmentModal(), METHOD_OPTIONS, PaymentRow, Props, rowStyle, ServiceItem, STATE_TONE (+27 more)
Cohesion: 0.08
Nodes (33): AppointmentLike, METHOD_OPTIONS, PaymentRow, Props, rowStyle, ServiceItem, STATE_TONE, MethodOption (+25 more)
### Community 63 - "Community 63"
Cohesion: 0.01
Nodes (185): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), queryClient, toastStyle, ClinicDoctorsManager(), ClinicInvitation, HUES_LIST (+177 more)
Nodes (195): SessionServiceCard(), PaginatedResponse, numericField(), NumericFieldProps, wrap(), formatDate(), formatDateTime(), toDate() (+187 more)
### Community 64 - "Community 64"
Cohesion: 0.29
Nodes (4): SmsWalletController, JsonResponse, Request, User
Cohesion: 0.19
Nodes (7): SmsWalletController, SmsSettingsRepository, SmsSettings, JsonResponse, Request, User, ManagerRegistry
### Community 65 - "Community 65"
Cohesion: 0.08
@@ -1331,8 +1336,8 @@ Cohesion: 0.08
Nodes (24): سناریو: ایمپورت پزشکان سازمان نظام پزشکی و مدیریت مالکیت پروفایل, نتیجه‌گیری کلیدی طراحی, ۱. خلاصه اجرایی, ۱۰. جریان کاربری (خلاصه‌ی گام‌به‌گام), ۱۱. حالات مرزی و قواعد کسب‌وکار, ۱۲. مراحل پیاده‌سازی (به‌ترتیب و به‌تفکیک ریپو), ۱۳. تصمیمات باز و ریسک‌ها, ۱۴. مرجع نمونه‌ی داده (+16 more)
### Community 72 - "Community 72"
Cohesion: 0.07
Nodes (4): ClaimItem, Claim, Collection, self
Cohesion: 0.08
Nodes (3): Claim, Collection, self
### Community 74 - "Community 74"
Cohesion: 0.09
@@ -1359,12 +1364,8 @@ Cohesion: 0.12
Nodes (3): SubscriptionPlan, Collection, self
### Community 81 - "Community 81"
Cohesion: 0.07
Nodes (27): dependencies, @ckeditor/ckeditor5-build-classic, @ckeditor/ckeditor5-react, @fontsource/vazirmatn, @heroicons/react, @hookform/resolvers, jalaali-js, leaflet (+19 more)
### Community 82 - "Community 82"
Cohesion: 0.14
Nodes (5): CategoryImportTest, PurgeDoctorsCommand, Connection, InputInterface, OutputInterface
Cohesion: 0.09
Nodes (23): dependencies, @ckeditor/ckeditor5-build-classic, @ckeditor/ckeditor5-react, @fontsource/vazirmatn, @heroicons/react, @hookform/resolvers, jalaali-js, leaflet (+15 more)
### Community 83 - "Community 83"
Cohesion: 0.09
@@ -1380,7 +1381,7 @@ Nodes (30): devDependencies, @babel/core, @babel/preset-env, @babel/preset-react
### Community 86 - "Community 86"
Cohesion: 0.03
Nodes (24): BookingModeImmutableTest, BookingServicesPublicTest, DateOverrideOwnershipTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListNPlusOneTest, ClaimsListPaginationTest, CaptchaFlowTest (+16 more)
Nodes (25): BookingModeImmutableTest, BookingServicesPublicTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, CaptchaFlowTest, CreateClinicValidationTest, ServiceItemMultiStaffTest (+17 more)
### Community 87 - "Community 87"
Cohesion: 0.10
@@ -1403,7 +1404,7 @@ Cohesion: 0.10
Nodes (20): DELETE `/api/v1/admin/users/{uuid}`, Errors, Errors, GET `/api/v1/admin/users`, GET `/api/v1/admin/users/stats`, GET `/api/v1/admin/users/{uuid}`, POST `/api/v1/admin/users/{uuid}/status`, PUT `/api/v1/admin/users/{uuid}` (+12 more)
### Community 92 - "Community 92"
Cohesion: 0.09
Cohesion: 0.10
Nodes (21): Bulk import / export, DELETE `/api/v1/admin/doctor-service/{id}`, Doctor Service API, Errors, Errors, Errors, Errors, GET `/api/v1/admin/doctor-services` (+13 more)
### Community 93 - "Community 93"
@@ -1539,8 +1540,8 @@ Cohesion: 0.17
Nodes (4): Rate, Doctor, self, User
### Community 126 - "Community 126"
Cohesion: 0.31
Nodes (3): DiscountRuleRepository, DiscountRule, ManagerRegistry
Cohesion: 0.27
Nodes (5): ClinicAppointmentAccessTest, Appointment, Clinic, Doctor, User
### Community 128 - "Community 128"
Cohesion: 0.11
@@ -1671,8 +1672,8 @@ Cohesion: 0.13
Nodes (15): Date Overrides, DELETE `/api/v1/appointment-settings/date-override/{uuid}`, Errors, Errors, GET `/api/v1/appointment-settings/date-override/list/{doctorUuid}`, GET `/api/v1/appointment-settings/date-override/{uuid}`, PATCH `/api/v1/appointment-settings/date-override/{uuid}`, POST `/api/v1/appointment-settings/date-override` (+7 more)
### Community 161 - "Community 161"
Cohesion: 0.04
Nodes (30): ApiError, { refreshMock, logoutMock }, replaceMock, displayDoctorName(), SecretaryDashboard(), AddrForm, addrSchema, AVATAR_COLORS (+22 more)
Cohesion: 0.02
Nodes (90): ClinicDoctorsManager(), ClinicInvitation, HUES_LIST, INV_STATUS_MAP, PatientTagsCell(), TenantTag, TauriStatCards(), latinDigitsField() (+82 more)
### Community 162 - "Community 162"
Cohesion: 0.10
@@ -1827,8 +1828,8 @@ Cohesion: 0.33
Nodes (3): PurgeUnclaimedDoctorsCommand, InputInterface, OutputInterface
### Community 201 - "Community 201"
Cohesion: 0.11
Nodes (19): Admin API, Behaviour while enabled, Clinic Invitation Management, Console escape hatch, Failure behaviour, GET `/api/v1/admin/pre-registrations`, GET `/api/v1/admin/secretaries`, GET /api/v1/admin/settings (+11 more)
Cohesion: 0.13
Nodes (15): Admin API, Behaviour while enabled, Clinic Invitation Management, Console escape hatch, Failure behaviour, GET `/api/v1/admin/secretaries`, GET /api/v1/admin/settings, Maintenance Mode (+7 more)
### Community 202 - "Community 202"
Cohesion: 0.15
@@ -1839,20 +1840,20 @@ Cohesion: 0.12
Nodes (16): Clinic Services API, DELETE /api/v1/service-item/{uuid}, DELETE /api/v1/service-section/{uuid}, GET /api/v1/service-item/{uuid}, GET /api/v1/service-item/{uuid}/audit-logs, GET /api/v1/service-items, GET /api/v1/service-items/{sectionUuid}, GET /api/v1/service-items/{uuid}/tariffs (+8 more)
### Community 204 - "Community 204"
Cohesion: 0.04
Nodes (43): useSubscription(), AdminLayout(), avatarBg(), HUES, ProfileMenu(), Role, ROLE_LABELS, settingsPath() (+35 more)
Cohesion: 0.02
Nodes (104): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), RoleRoute(), queryClient, toastStyle, TenantInsuranceContracts(), get (+96 more)
### Community 205 - "Community 205"
Cohesion: 0.21
Nodes (4): SeedDemoDataCommand, InputInterface, OutputInterface, SymfonyStyle
### Community 206 - "Community 206"
Cohesion: 0.21
Nodes (5): MellatGateway, SoapClient, PaymentInitResult, PaymentRefundResult, PaymentVerifyResult
Cohesion: 0.08
Nodes (14): MellatGateway, MockGateway, SepGateway, SoapClient, PaymentGatewayInterface, PaymentInitResult, PaymentRefundResult, PaymentVerifyResult (+6 more)
### Community 207 - "Community 207"
Cohesion: 0.15
Nodes (13): ۲. مدل داده و موجودیت‌ها, ۲.۱ کاربر (User), ۲.۱۰ پرداخت (Payment Types), ۲.۱۰.۱ پرداخت نوبت, ۲.۱۰.۲ پرداخت اشتراک, ۲.۱۱ پروفایل بیمار (Profile), ۲.۱۲ وبلاگ (Blog), ۲.۳ دکتر (Doctor) (+5 more)
Cohesion: 0.07
Nodes (30): ۲. مدل داده و موجودیت‌ها, ۲.۱ کاربر (User), ۲.۱۰ پرداخت (Payment Types), ۲.۱۰.۱ پرداخت نوبت, ۲.۱۰.۲ پرداخت اشتراک, ۲.۱۱ پروفایل بیمار (Profile), ۲.۱۲ وبلاگ (Blog), ۲.۱۳ نظرات، لایک و امتیازدهی (+22 more)
### Community 208 - "Community 208"
Cohesion: 0.23
@@ -1923,8 +1924,8 @@ Cohesion: 0.14
Nodes (13): DELETE `/api/v1/representation/{uuid}`, Errors, Errors, GET `/api/v1/representation/{uuid}/dashboard/monthly`, GET `/api/v1/site-context`, Path Parameters, Query Parameters, Query Parameters (+5 more)
### Community 230 - "Community 230"
Cohesion: 0.28
Nodes (6): ClinicServiceController, JsonResponse, Request, ServiceItem, ServiceSection, User
Cohesion: 0.22
Nodes (4): BlogV2FieldsTest, Blog, City, Representation
### Community 231 - "Community 231"
Cohesion: 0.17
@@ -2019,16 +2020,16 @@ Cohesion: 0.36
Nodes (4): SiteConfigController, JsonResponse, Request, User
### Community 255 - "Community 255"
Cohesion: 0.18
Nodes (11): GET /api/v1/doctors/{id}, GET /api/v1/doctors/{id}/insurances, GET /api/v1/representations/{id}, GET /oauth/userinfo — اطلاعات کاربر (سازگار با دروپال), POST /api/v1/representations/{id}/bank-accounts, POST /oauth/token — تجدید توکن (Refresh), POST /oauth/token — ورود به سیستم, Task-02: احراز هویت (Authentication) (+3 more)
Cohesion: 0.11
Nodes (19): GET /api/v1/appointment-settings/slots — دریافت اسلات‌های خالی, GET /api/v1/categories/cities — شهرها, GET /api/v1/categories/states — استان‌ها, GET /api/v1/doctors/{id}, GET /api/v1/doctors/{id}/insurances, GET /api/v1/representations/{id}, GET /oauth/userinfo — اطلاعات کاربر (سازگار با دروپال), POST /api/v1/appointment-settings/holidays — ثبت تعطیلی (فقط ادمین) (+11 more)
### Community 256 - "Community 256"
Cohesion: 0.10
Nodes (19): `200 OK` (به‌روزرسانی شد), `200 OK` (رد به‌دلیل تصاحب‌شده), `200 OK` (رد به‌دلیل کد نظام پزشکی تکراری با منبع دیگر), `201 Created` (ساخته شد), `422` (اعتبارسنجی), Doctor Import (IRIMC) API, idempotency, Request (+11 more)
### Community 258 - "Community 258"
Cohesion: 0.15
Nodes (7): ExpireAppointmentsMessage, ExpireAppointmentsHandler, PruneLogsHandler, PruneLogsMessage, ScheduleProviderInterface, Schedule, SymfonySchedule
Cohesion: 0.11
Nodes (9): ExpireAppointmentsMessage, ExpireAppointmentsHandler, PruneLogsHandler, PublishScheduledBlogsHandler, PruneLogsMessage, PublishScheduledBlogsMessage, ScheduleProviderInterface, Schedule (+1 more)
### Community 259 - "Community 259"
Cohesion: 0.18
@@ -2103,8 +2104,8 @@ Cohesion: 0.20
Nodes (9): Architecture Audit — ClinicPro Symfony 7 Migration, Architecture Score (بعد از اصلاحات), Architecture Violations, Executive Summary, Final Verdict (بعد از اصلاحات), Missing Requirements (کامل), اصلاحات اعمال‌شده (بعد از Audit), دلیل تصمیم (+1 more)
### Community 277 - "Community 277"
Cohesion: 0.20
Nodes (9): بخش اول — مستند محصول (PRD), فهرست کلی, کلینیک پرو — مستند جامع فنی و API, ۵. فهرست مشکلات شناسایی‌شده و اصلاحات لازم, ۶. پیوست, ۶.۱ دیاگرام وضعیت نوبت, ۶.۲ جریان کمیسیون, ۶.۳ بررسی محدودیت منشی (+1 more)
Cohesion: 0.08
Nodes (23): GET /api/v1/sms/balance — موجودی حساب پیامک, POST /api/v1/sms/queue — افزودن به صف, بخش اول — مستند محصول (PRD), ثبت‌نام دکتر — از طریق نماینده, ثبت‌نام دکتر — از طریق کلینیک, ثبت‌نام دکتر — مستقل, فهرست کلی, کلینیک پرو — مستند جامع فنی و API (+15 more)
### Community 279 - "Community 279"
Cohesion: 0.20
@@ -2135,8 +2136,8 @@ Cohesion: 0.19
Nodes (4): ServiceItemRepository, ManagerRegistry, ServiceItem, ServiceSection
### Community 286 - "Community 286"
Cohesion: 0.20
Nodes (7): ApptRow, JALALI_MONTHS, MONTH_OPTIONS, SelectorOption, TauriDashboardView(), TauriDashboardViewProps, DashboardStats
Cohesion: 0.11
Nodes (11): ChevronDownIcon(), ApptRow, HEAD, NewAppointmentsTable(), Props, JALALI_MONTHS, MONTH_OPTIONS, SelectorOption (+3 more)
### Community 287 - "Community 287"
Cohesion: 0.27
@@ -2192,7 +2193,7 @@ Nodes (9): require-dev, phpstan/phpstan, phpstan/phpstan-doctrine, phpstan/phpst
### Community 300 - "Community 300"
Cohesion: 0.35
Nodes (4): ClinicOwnerScheduleAccessTest, Clinic, Doctor, DoctorAddress
Nodes (7): RepresentationBlogController, Blog, City, JsonResponse, Representation, Request, User
### Community 301 - "Community 301"
Cohesion: 0.15
@@ -2207,8 +2208,8 @@ Cohesion: 0.12
Nodes (16): آماده‌سازی پروژه ClinicPro برای دیپلوی روی Coolify با Docker Compose, زمینه, فایل‌های مرتبط, نکات مهم (محدودیت‌ها و edge caseها), هدف, وظایف, ۱. ساخت `Dockerfile` چندمرحله‌ای, ۱۰. ساخت راهنمای `docs/deploy/coolify.md` (+8 more)
### Community 304 - "Community 304"
Cohesion: 0.04
Nodes (56): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 31. 🟡 `PATCH` patch, 33. 🔵 `POST` image_clinic, 34. 🔵 `POST` image logo, 36. 🟢 `GET` get my rate, 37. 🔵 `POST` post, 38. 🟢 `GET` Unapproved comments (+48 more)
Cohesion: 0.22
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 33. 🔵 `POST` image_clinic, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخ‌ها, پاسخ‌ها (+1 more)
### Community 306 - "Community 306"
Cohesion: 0.07
@@ -2244,7 +2245,7 @@ Nodes (4): InsuranceRepository, Insurance, InsuranceType, ManagerRegistry
### Community 314 - "Community 314"
Cohesion: 0.03
Nodes (97): AppointmentCardData, AppointmentTurnCard(), base, Breadcrumb(), PatientCaseBanner(), Tag, PatientTagsCell(), TenantTag (+89 more)
Nodes (101): AppointmentCardData, AppointmentTurnCard(), base, Invoice, InvoiceItem, InvoiceSummaryModal(), SessionConsumable, SessionData (+93 more)
### Community 315 - "Community 315"
Cohesion: 0.05
@@ -2254,6 +2255,10 @@ Nodes (21): BillingCalculatorTest, BillingCalculator, Money, InvoiceRepository,
Cohesion: 0.12
Nodes (15): mapping صفحات clinicpro → فریم فیگما, الف-۱. توکن‌های رنگ (light + dark), الف-۲. سلکتور رنگ کاربر, الف-۳. ابعاد و رفتار layout, الف-۴. شعاع‌ها و input/button, الف-۵. کامپوننت‌های مشترک مطابق فیگما, ایندکس فریم‌های فیگما (۴ section، node-id دسکتاپ), بخش الف — سیستم طراحی مشترک (یک‌بار، پایه‌ی همه‌ی صفحات) (+7 more)
### Community 317 - "Community 317"
Cohesion: 0.29
Nodes (3): CorsRegexEnvProcessor, EnvVarProcessorInterface, CorsRegexEnvProcessorTest
### Community 318 - "Community 318"
Cohesion: 0.32
Nodes (4): PatientListFilterTest, Doctor, PatientRecord, TenantTag
@@ -2303,8 +2308,8 @@ Cohesion: 0.22
Nodes (8): Query های جدید, بیماران منحصربه‌فرد در بازه, درآمد بر اساس روز (از patient_sessions), فروش اشتراک بر اساس پنل (admin), نوبت‌ها بر اساس روز (admin chart), نکات مهم, هیچ migration لازم نیست, پایگاه داده — تسک ۱۶: داشبورد هوشمند
### Community 333 - "Community 333"
Cohesion: 0.29
Nodes (7): DELETE `/api/v1/clinic-pro/doctor-address/{id}`, Doctor API, Errors, GET `/api/v1/clinic-pro/doctor-addresses/{doctorId}`, Path Parameters, Response `200`, Response `200`
Cohesion: 0.04
Nodes (52): `city` / `state` در پاسخ لیست, DELETE `/api/v1/clinic-pro/doctor-address/{id}`, DELETE `/api/v1/doctor/{uuid}`, Doctor API, Errors, Errors, Errors, Errors (+44 more)
### Community 334 - "Community 334"
Cohesion: 0.25
@@ -2431,8 +2436,8 @@ Cohesion: 0.25
Nodes (7): بازسازی از صفر, دادهٔ انبوه, شناسه‌ها, نام پزشک بدون عنوان, نکته‌ها, پرسوناها, کاربران تستی
### Community 367 - "Community 367"
Cohesion: 0.16
Nodes (6): Altcha, AltchaService, altcha, Altcha(), AltchaProps, IntrinsicElements
Cohesion: 0.24
Nodes (3): Altcha, AltchaService, altcha
### Community 368 - "Community 368"
Cohesion: 0.36
@@ -2558,6 +2563,10 @@ Nodes (15): `lib/utils.ts`, `SettingsPage.tsx` (ورودی‌ها ریال ذخ
Cohesion: 0.31
Nodes (4): BookingLocationValidityTest, Clinic, Doctor, WeeklySchedule
### Community 404 - "Community 404"
Cohesion: 0.16
Nodes (7): AbstractMigration, Schema, Version20260609133334, Schema, Version20260609135704, Schema, Version20260715083856
### Community 405 - "Community 405"
Cohesion: 0.11
Nodes (17): بازطراحی معماری پرداخت — سرویس‌محور، امن، توسعه‌پذیر (Backend), تست دستی (ddev، در حالت `payment_test_mode=1`), خروجی نهایی (طبق spec — در گزارش اجرا ارائه شود), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (+9 more)
@@ -2567,8 +2576,8 @@ Cohesion: 0.06
Nodes (30): انتقال برنامه کاری، اصلاح فرم تنظیمات نوبت، فیلدهای عددی لاتین، رفع باگ هزینه ویزیت در مودال، و لاگ/تایم‌لاین لغو نوبت, تسک ۱ — انتقال کامل «برنامه کاری» از پروفایل به تنظیمات نوبت‌دهی, تسک ۲ — اصلاح چیدمان دکمه ذخیره در صفحه تنظیمات نوبت‌دهی, تسک ۳ — اجبار ورودی لاتین در همه فیلدهای عددی سراسری, تسک ۴ — رفع باگ: ثبت نوبت هنگام الزامی بودن هزینه ویزیت (۴۲۲), تسک ۵ — ثبت لاگ و رویداد Timeline هنگام لغو نوبت, زمینه, فایل‌های مرتبط (+22 more)
### Community 407 - "Community 407"
Cohesion: 0.21
Nodes (9): LoggerInterface, MessageBusInterface, MockObject, SmsServiceLookupOnlyTest, SmsLogRepository, SmsMessageTemplateRepository, SmsService, SmsTextResolver (+1 more)
Cohesion: 0.17
Nodes (11): MessageBusInterface, MockObject, SmsLogRepository, SmsServiceLookupOnlyTest, SmsLog, SmsLogRepository, SmsMessageTemplateRepository, SmsService (+3 more)
### Community 410 - "Community 410"
Cohesion: 0.08
@@ -2580,15 +2589,15 @@ Nodes (20): edge cases, خلاصهٔ خطاها و اولویت, راه‌حل,
### Community 416 - "Community 416"
Cohesion: 0.05
Nodes (32): ApiAppointment, NOT_VISITED_STATUSES, ServiceOption, STATUS_OPTIONS, NewAppointmentsTable(), AdminCharts, AdminDashboard(), AdminRecent (+24 more)
Nodes (37): Props, grid, PatientFormOptions, patientFormSchema, Props, baseValues, options, ApiAppointment (+29 more)
### Community 418 - "Community 418"
Cohesion: 0.17
Nodes (11): دیپلوی ClinicPro روی Coolify (Docker Compose), رفع اشکال, مراحل دیپلوی, معماری دیپلوی, نکات عملیاتی, چند دامنه فرانت‌اند (مهم), ۱. ساخت Resource در Coolify, ۲. اختصاص دامنه (+3 more)
### Community 421 - "Community 421"
Cohesion: 0.14
Nodes (8): UniqueConstraintsTest, FinancialBreakdown, FinancialBreakdownRepository, CommissionService, ManagerRegistry, Payment, Payment, Representation
Cohesion: 0.47
Nodes (3): CommissionService, Payment, Representation
### Community 422 - "Community 422"
Cohesion: 0.12
@@ -2611,24 +2620,24 @@ Cohesion: 0.12
Nodes (16): backend (آماده — فقط annotation/doc ناقص), افزودن فیلد «تاریخ شروع فعالیت» (سال تجربه) در پنل ادمین با تقویم شمسی, زمینه, فایل‌های مرتبط, فرم ساخت پزشک — `DoctorFormPage.tsx` (خط ~282), فرم ویرایش پزشک — `DoctorDetailPage.tsx` (وضعیت فعلی، بدون فیلد تاریخ), مشکل / هدف, نکات مهم (+8 more)
### Community 433 - "Community 433"
Cohesion: 0.17
Nodes (8): ErrorCodes, PatientController, JsonResponse, PatientRecord, PatientRecordScope, PatientSession, Request, User
Cohesion: 0.06
Nodes (28): ErrorCodes, AuthController, ClinicServiceController, PatientController, StaffController, AppException, RateLimiterFactory, SlotTakenException (+20 more)
### Community 435 - "Community 435"
Cohesion: 0.20
Nodes (6): AuthController, RateLimiterFactory, ClinicDoctorPermission, JsonResponse, Request, User
Cohesion: 0.38
Nodes (3): PurgeUnclaimedDoctorsCommandTest, CommandTester, Doctor
### Community 436 - "Community 436"
Cohesion: 0.12
Nodes (16): `book()` عمومی — الگوی درستِ موجود (کپی از `AppointmentController::book`, خط ۲۴۲–۲۶۳), زمینه, فایل‌های مرتبط, فرم — بدون فیلد کد ملی (کپی از `AppointmentCreatePage.tsx`), مسیر ادمین — بیمار فقط با موبایل (کپی از `MyAppointmentsController::createAppointment`, خط ۸۱–۸۷), نوبت‌دهی ادمین بر اساس کد ملی + موبایل (پرونده یکتا با کد ملی), نکات مهم, هدف (+8 more)
### Community 437 - "Community 437"
Cohesion: 0.17
Nodes (7): AdminCspSubscriber, NumericFieldNormalizerSubscriber, SecurityHeadersSubscriber, EventSubscriberInterface, ResponseEvent, RequestEvent, ResponseEvent
Cohesion: 0.18
Nodes (9): AdminUser, ASSIGNABLE_ROLES, ChangeRoleModal(), getPrimaryRole(), HUES_LIST, ROLE_META, ROLE_TABS, RoleBadge() (+1 more)
### Community 438 - "Community 438"
Cohesion: 0.17
Nodes (9): AbstractAuthenticator, AuthenticationException, ExceptionSubscriber, Passport, PasswordAuthenticator, Request, Response, ExceptionEvent (+1 more)
Cohesion: 0.07
Nodes (21): AbstractAuthenticator, AuthenticationException, AdminCspSubscriber, ExceptionSubscriber, MaintenanceSubscriber, NumericFieldNormalizerSubscriber, SecurityHeadersSubscriber, EventSubscriberInterface (+13 more)
### Community 439 - "Community 439"
Cohesion: 0.17
@@ -2642,17 +2651,13 @@ Nodes (18): [F10] راهنمای کهنه در `CLAUDE.md`: endpoint `categorys/
Cohesion: 0.22
Nodes (6): ServiceItemPackageAndAuditTest, Doctor, InventoryItem, InventoryPackage, ServiceItem, ServiceSection
### Community 444 - "Community 444"
Cohesion: 0.36
Nodes (5): StaffController, ClinicStaff, JsonResponse, Request, User
### Community 445 - "Community 445"
Cohesion: 0.27
Nodes (4): RequireVisitPriceTest, Doctor, EntityInsurancePricing, PatientRecord
### Community 446 - "Community 446"
Cohesion: 0.15
Nodes (8): PurgeDoctorsCommandTest, PurgeUnclaimedDoctorsCommandTest, RepositoryClassMappingTest, KernelTestCase, DbLoggerTest, CommandTester, CommandTester, Doctor
Cohesion: 0.22
Nodes (5): PurgeDoctorsCommandTest, RepositoryClassMappingTest, KernelTestCase, DbLoggerTest, CommandTester
### Community 447 - "Community 447"
Cohesion: 0.25
@@ -2663,7 +2668,7 @@ Cohesion: 0.07
Nodes (27): Bank accounts, Body, Body, Errors, Errors, Errors, Errors, Errors (+19 more)
### Community 451 - "Community 451"
Cohesion: 0.16
Cohesion: 0.18
Nodes (4): LogPruneService, MaintenanceService, MaintenanceModeTest, SiteConfigRepository
### Community 452 - "Community 452"
@@ -2759,7 +2764,7 @@ Cohesion: 0.10
Nodes (20): book() فعلی فقط slot_start/slot_end می‌گیرد, overlap واقعی از قبل درست است, زمینه, ساخت اسلاتِ ثابت (حالت فعلی = slot mode), فایل‌های مرتبط, متای برنامهٔ هفتگی, مدت خدمت — هست ولی استفاده نمی‌شود, نوبت‌دهی بر اساس مدت سرویس (Service-based booking) — Backend + Admin (+12 more)
### Community 479 - "Community 479"
Cohesion: 0.15
Cohesion: 0.16
Nodes (6): Authentication, ClinicPro — API Documentation Index, Error Code Reference, Modules, Persian digit normalization (global), Standard Response Envelope
### Community 481 - "Community 481"
@@ -2927,8 +2932,8 @@ Cohesion: 0.16
Nodes (3): BankAccount, self, User
### Community 533 - "Community 533"
Cohesion: 0.19
Nodes (6): BaseKernel, Closure, CorsRegexEnvProcessor, EnvVarProcessorInterface, MicroKernelTrait, Kernel
Cohesion: 0.31
Nodes (4): BaseKernel, Closure, MicroKernelTrait, Kernel
### Community 534 - "Community 534"
Cohesion: 0.34
@@ -2959,8 +2964,8 @@ Cohesion: 0.12
Nodes (4): SessionPayment, PatientSession, self, User
### Community 543 - "Community 543"
Cohesion: 0.13
Nodes (12): AdminUserDetail, AVATAR_COLORS, EditForm, editSchema, GENDER_LABELS, getPrimaryRole(), MARITAL_LABELS, MEDICAL_SECTIONS (+4 more)
Cohesion: 0.36
Nodes (3): DoctorServiceController, JsonResponse, Request
### Community 544 - "Community 544"
Cohesion: 0.15
@@ -3023,8 +3028,8 @@ Cohesion: 0.50
Nodes (4): Errors, POST `/api/v1/admin/sms/template/{uuid}/reject`, Request Body, Response `200`
### Community 559 - "Community 559"
Cohesion: 0.16
Nodes (7): SmsMessageController, SmsMessageTemplateRepository, SmsTextResolver, SmsMessageTemplate, JsonResponse, Request, ManagerRegistry
Cohesion: 0.25
Nodes (4): SmsMessageTemplateRepository, SmsTextResolver, SmsMessageTemplate, ManagerRegistry
### Community 560 - "Community 560"
Cohesion: 0.50
@@ -3075,8 +3080,8 @@ Cohesion: 0.15
Nodes (13): EMPTY, PatientFilters, PricingInsurance, TenantTag, AddTurn(), PatientsCategoryView(), PatientsGridView(), SearchHeaderP() (+5 more)
### Community 577 - "Community 577"
Cohesion: 0.03
Nodes (67): grid, PatientFormOptions, patientFormSchema, PatientFormValues, Props, baseValues, options, setup() (+59 more)
Cohesion: 0.07
Nodes (37): PatientFormValues, InvoicePayload, useIssueInvoice(), dateStrToTs(), EDUCATION_OPTS, formValuesToPayload(), GENDER_OPTS, MARITAL_OPTS (+29 more)
### Community 578 - "Community 578"
Cohesion: 0.22
@@ -3231,8 +3236,8 @@ Cohesion: 0.19
Nodes (9): DashboardController, IntlCalendar, Clinic, Doctor, DoctorSecretary, JsonResponse, QueryBuilder, Request (+1 more)
### Community 655 - "Community 655"
Cohesion: 0.21
Nodes (6): MyAppointmentsController, InputValidator, Doctor, JsonResponse, Request, User
Cohesion: 0.34
Nodes (5): MyAppointmentsController, Doctor, JsonResponse, Request, User
### Community 656 - "Community 656"
Cohesion: 0.25
@@ -3286,10 +3291,6 @@ Nodes (6): InventoryController, InventoryItem, InventoryPackage, JsonResponse, R
Cohesion: 0.28
Nodes (4): SubscriptionService, ClinicSubscription, Payment, SubscriptionPlan
### Community 681 - "Community 681"
Cohesion: 0.27
Nodes (5): MaintenanceSubscriber, ExceptionEvent, Request, RequestEvent, Response
### Community 683 - "Community 683"
Cohesion: 0.33
Nodes (4): PatientNote, PatientNoteRepository, ManagerRegistry, PatientRecord
@@ -3443,8 +3444,8 @@ Cohesion: 0.50
Nodes (4): Error Codes, POST `/api/v1/pre-registration`, Request Body, Response `200`
### Community 745 - "Community 745"
Cohesion: 0.29
Nodes (4): BlogRepository, Blog, ManagerRegistry, QueryBuilder
Cohesion: 0.15
Nodes (5): BlogRepository, Blog, ManagerRegistry, QueryBuilder, Representation
### Community 747 - "Community 747"
Cohesion: 0.12
@@ -3479,8 +3480,8 @@ Cohesion: 0.36
Nodes (4): BankAccountRepository, BankAccount, ManagerRegistry, User
### Community 759 - "Community 759"
Cohesion: 0.21
Nodes (4): SepGateway, PaymentInitResult, PaymentRefundResult, PaymentVerifyResult
Cohesion: 0.33
Nodes (3): DoctorService, DoctorServiceRepository, ManagerRegistry
### Community 761 - "Community 761"
Cohesion: 0.15
@@ -3495,8 +3496,8 @@ Cohesion: 0.51
Nodes (3): AppointmentWorkflowFieldsTest, Appointment, Doctor
### Community 766 - "Community 766"
Cohesion: 0.36
Nodes (4): ClaimAmountBoundsTest, Claim, Doctor, User
Cohesion: 0.21
Nodes (6): ClaimAmountBoundsTest, ClaimsListNPlusOneTest, ClaimItem, Claim, Doctor, User
### Community 767 - "Community 767"
Cohesion: 0.14
@@ -3535,8 +3536,8 @@ Cohesion: 0.24
Nodes (4): InventoryPackageItem, InventoryItem, InventoryPackage, self
### Community 782 - "Community 782"
Cohesion: 0.07
Nodes (22): Command, BackfillAppointmentSessionsCommand, CancelExpiredAppointmentsCommand, CreateAdminCommand, MaintenanceCommand, PruneLogsCommand, RepairAcceptedInvitationsCommand, SeedCategoriesCommand (+14 more)
Cohesion: 0.09
Nodes (16): Command, AuditScheduleLocationsCommand, PruneLogsCommand, RepairAcceptedInvitationsCommand, RepairImportedDoctorsCommand, SeedCategoriesCommand, InputInterface, OutputInterface (+8 more)
### Community 783 - "Community 783"
Cohesion: 0.13
@@ -3606,6 +3607,10 @@ Nodes (8): Errors, GET `/api/v1/patient/{uuid}/payments`, GET `/api/v1/patient/{
Cohesion: 0.15
Nodes (12): زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, ویرایش سرویس‌های مراجعه + ویرایش/حذف پرداخت + Audit Log مالی جامع, پروژه (+4 more)
### Community 812 - "Community 812"
Cohesion: 0.25
Nodes (4): StripNameTitleStep, RepairOptions, RepairResult, SymfonyStyle
### Community 813 - "Community 813"
Cohesion: 0.18
Nodes (5): BackfillSourceProfileIdStep, SourceProfileId, RepairOptions, RepairResult, SymfonyStyle
@@ -3619,17 +3624,13 @@ Cohesion: 0.43
Nodes (3): SmsTemplateRepository, SmsTemplate, ManagerRegistry
### Community 817 - "Community 817"
Cohesion: 0.18
Nodes (5): MockGateway, PaymentGatewayInterface, PaymentInitResult, PaymentRefundResult, PaymentVerifyResult
Cohesion: 0.36
Nodes (3): ServiceSectionRepository, ManagerRegistry, ServiceSection
### Community 818 - "Community 818"
Cohesion: 0.38
Nodes (3): DiscountEngine, DiscountRule, PatientSession
### Community 823 - "Community 823"
Cohesion: 0.38
Nodes (3): AuditScheduleLocationsCommand, InputInterface, OutputInterface
### Community 825 - "Community 825"
Cohesion: 0.32
Nodes (5): SecretaryService, Clinic, Doctor, DoctorSecretary, User
@@ -3650,14 +3651,14 @@ Nodes (14): رفع کامل عملیات نوبت در حالت کلینیک (co
Cohesion: 0.50
Nodes (4): autoload, files, psr-4, App\\
### Community 832 - "Community 832"
Cohesion: 0.39
Nodes (4): FinancialBreakdown, FinancialBreakdownRepository, ManagerRegistry, Payment
### Community 833 - "Community 833"
Cohesion: 0.50
Nodes (4): extra, symfony, allow-contrib, require
### Community 834 - "Community 834"
Cohesion: 0.22
Nodes (3): AppException, SlotTakenException, RuntimeException
### Community 835 - "Community 835"
Cohesion: 0.39
Nodes (3): UserRepository, ManagerRegistry, User
@@ -3670,10 +3671,6 @@ Nodes (3): InventoryItemRepository, InventoryItem, ManagerRegistry
Cohesion: 0.47
Nodes (3): BookingContextResolver, Clinic, Doctor
### Community 842 - "Community 842"
Cohesion: 0.16
Nodes (7): AbstractMigration, Schema, Version20260610103401, Schema, Version20260610183655, Schema, Version20260719044321
### Community 844 - "Community 844"
Cohesion: 0.15
Nodes (12): اصلاح دادهٔ موجود: افزودن تخصص‌های والد به پزشکان (backfill), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+4 more)
@@ -3771,8 +3768,12 @@ Cohesion: 0.39
Nodes (3): ProvinceRepository, ManagerRegistry, Province
### Community 880 - "Community 880"
Cohesion: 0.25
Nodes (8): ثبت‌نام دکتر — از طریق نماینده, ثبت‌نام دکتر — از طریق کلینیک, ثبت‌نام دکتر — مستقل, ۱. معرفی محصول, ۱.۱ نقش‌های سیستم, ۱.۲ فلوهای عملیاتی اصلی, ۱.۳ پلن‌های اشتراک, ۱.۴ سیستم پیامک
Cohesion: 0.38
Nodes (3): BackfillAppointmentSessionsCommand, InputInterface, OutputInterface
### Community 883 - "Community 883"
Cohesion: 0.38
Nodes (3): CreateAdminCommand, InputInterface, OutputInterface
### Community 884 - "Community 884"
Cohesion: 0.15
@@ -3855,8 +3856,8 @@ Cohesion: 0.22
Nodes (9): Clinic API, Clinic Doctor Permissions, Errors, Errors, GET `/api/v1/admin/clinic/{clinicUuid}/doctor-permissions`, PATCH `/api/v1/admin/clinic/{clinicUuid}/doctor/{doctorUuid}/permissions`, Request Body, Response `200` (+1 more)
### Community 926 - "Community 926"
Cohesion: 0.25
Nodes (8): ۲.۲ انواع دسته‌بندی (Category Types), ۲.۲.۱ تگ (Tag), ۲.۲.۲ استان (State), ۲.۲.۳ شهر (City), ۲.۲.۴ بیمه پایه (Basic Insurance), ۲.۲.۵ بیمه مکمل (Supplementary Insurance), ۲.۲.۶ تخصص دکتر (Doctor Specialty), ۲.۲.۷ خدمات دکتر (Doctor Services)
Cohesion: 0.38
Nodes (3): MaintenanceCommand, InputInterface, OutputInterface
### Community 929 - "Community 929"
Cohesion: 0.39
@@ -3883,8 +3884,8 @@ Cohesion: 0.53
Nodes (3): PaymentLog, PaymentLogRepository, ManagerRegistry
### Community 939 - "Community 939"
Cohesion: 0.09
Nodes (12): RepairImportedDoctorsCommand, DoctorRepairStep, BackfillSurrogateRoleStep, StripNameTitleStep, InputInterface, OutputInterface, RepairOptions, RepairResult (+4 more)
Cohesion: 0.12
Nodes (9): DoctorRepairStep, BackfillSpecialtyParentsStep, BackfillSurrogateRoleStep, RepairOptions, RepairResult, SymfonyStyle, RepairOptions, RepairResult (+1 more)
### Community 940 - "Community 940"
Cohesion: 0.40
@@ -3895,8 +3896,8 @@ Cohesion: 0.48
Nodes (3): SessionConsumableRepository, ManagerRegistry, SessionConsumable
### Community 942 - "Community 942"
Cohesion: 0.43
Nodes (3): SmsLogRepository, SmsLog, ManagerRegistry
Cohesion: 0.38
Nodes (3): PurgeDoctorsCommand, InputInterface, OutputInterface
### Community 944 - "Community 944"
Cohesion: 0.43
@@ -3907,16 +3908,12 @@ Cohesion: 0.25
Nodes (4): ReportSuspectedDuplicatesStep, RepairOptions, RepairResult, SymfonyStyle
### Community 950 - "Community 950"
Cohesion: 0.48
Nodes (3): SmsSettingsRepository, SmsSettings, ManagerRegistry
Cohesion: 0.43
Nodes (3): SmsMessageController, JsonResponse, Request
### Community 956 - "Community 956"
Cohesion: 0.53
Nodes (3): TaxRateHistoryRepository, ManagerRegistry, TaxRateHistory
### Community 957 - "Community 957"
Cohesion: 0.40
Nodes (5): Errors, POST `/api/v1/appointment/{uuid}/confirm`, Request Body, Response `200`, What happens on the server
Cohesion: 0.47
Nodes (3): CancelExpiredAppointmentsCommand, InputInterface, OutputInterface
### Community 958 - "Community 958"
Cohesion: 0.40
@@ -3934,21 +3931,21 @@ Nodes (5): 35. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای
Cohesion: 0.50
Nodes (4): 39. 🟡 `PATCH` Comment confirmation, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 965 - "Community 965"
Cohesion: 0.33
Nodes (6): GET /api/v1/sms/balance — موجودی حساب پیامک, POST /api/v1/sms/queue — افزودن به صف, ۴. سیستم حساب و صف پیامک, ۴.۱ حساب پیامک (SMS Account), ۴.۲ صف پیامک (SMS Queue), ۴.۳ API پیامک
### Community 971 - "Community 971"
Cohesion: 0.28
Nodes (5): DoctorAppointmentFilterTest, AppointmentRepository, AppointmentExpiryService, Appointment, Doctor
### Community 973 - "Community 973"
Cohesion: 0.17
Nodes (8): CalendarIcon(), CardIcon(), CardTickIcon(), ChevronDownIcon(), UserAddIcon(), HEAD, Props, StatCardModel
Cohesion: 0.39
Nodes (5): CalendarIcon(), CardIcon(), CardTickIcon(), UserAddIcon(), StatCardModel
### Community 974 - "Community 974"
Cohesion: 0.40
Nodes (5): ۲.۸ تنظیمات نوبت (Appointment Settings), ۲.۸.۱ برنامه هفتگی (Weekly Schedule), ۲.۸.۲ تعطیلات (Holidays), ۲.۸.۳ لغو تعطیل (Date Override), ۲.۸.۴ الگوریتم محاسبه اسلات‌های خالی
Nodes (5): 31. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 975 - "Community 975"
Cohesion: 0.40
Nodes (5): 37. 🔵 `POST` post, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 976 - "Community 976"
Cohesion: 0.50
@@ -3959,16 +3956,28 @@ Cohesion: 0.46
Nodes (6): ChildMap, removeSpecialtyEntry(), childMap, toggleSpecialtyChild(), toggleSpecialtyRoot(), uniq()
### Community 978 - "Community 978"
Cohesion: 0.15
Nodes (6): ClinicDoctorPermissionEnforcementTest, UserActiveContextRepository, SecretaryAppointmentScopeTest, ManagerRegistry, User, UserActiveContext
Cohesion: 0.42
Nodes (4): UserActiveContextRepository, ManagerRegistry, User, UserActiveContext
### Community 979 - "Community 979"
Cohesion: 0.40
Nodes (5): 41. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 980 - "Community 980"
Cohesion: 0.33
Nodes (6): GET `/api/v1/admin/sms/logs`, GET `/api/v1/admin/sms/templates`, Query Parameters, Response `200`, Response `200`, SMS Management (Admin)
### Community 981 - "Community 981"
Cohesion: 0.40
Nodes (4): license, overrides, lodash, private
### Community 982 - "Community 982"
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
### Community 984 - "Community 984"
Cohesion: 0.50
Nodes (4): GET /api/v1/appointment-settings/slots — دریافت اسلات‌های خالی, POST /api/v1/appointment-settings/holidays — ثبت تعطیلی (فقط ادمین), POST /api/v1/appointment-settings/overrides — ثبت Override توسط دکتر, Task-09: API تنظیمات نوبت
Nodes (4): 38. 🟢 `GET` Unapproved comments, هدرهای اضافی, پارامترهای Query, پاسخ‌ها
### Community 985 - "Community 985"
Cohesion: 0.67
@@ -3976,15 +3985,23 @@ Nodes (3): GET `/api/v1/clinics`, Query Parameters, Response `200`
### Community 986 - "Community 986"
Cohesion: 0.50
Nodes (4): GET /api/v1/categories/cities — شهرها, GET /api/v1/categories/states — استان‌ها, Task-08: API دسته‌بندی‌ها, سایر Endpoint های دسته‌بندی — الزامی
Nodes (4): 40. 🔵 `POST` post, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 987 - "Community 987"
Cohesion: 0.33
Nodes (4): run(), RepairOptions, RepairResult, SymfonyStyle
### Community 989 - "Community 989"
Cohesion: 0.50
Nodes (4): 44. 🟢 `GET` list comment, هدرهای اضافی, پارامترهای Query, پاسخ‌ها
### Community 990 - "Community 990"
Cohesion: 0.50
Nodes (4): ۲.۱۳ نظرات، لایک و امتیازدهی, ۲.۱۳.۱ نظر (Comment), ۲.۱۳.۲ لایک (Like), ۲.۱۳.۳ امتیاز (Rate)
Nodes (4): 45. 🔵 `POST` post, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 991 - "Community 991"
Cohesion: 0.50
Nodes (4): 46. 🟡 `PATCH` patch, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 999 - "Community 999"
Cohesion: 0.40
@@ -3995,53 +4012,33 @@ Cohesion: 0.50
Nodes (4): Errors, GET `/api/v1/representation/doctors`, Query Parameters, Response `200`
### Community 1001 - "Community 1001"
Cohesion: 0.33
Nodes (6): `city` / `state` در پاسخ لیست, GET `/api/v1/doctors`, Query Parameters, Response `200`, اعتبارسنجی نام پزشک, مرتب‌سازی و تعریف «دارای نوبت»
Cohesion: 0.50
Nodes (3): Altcha(), AltchaProps, IntrinsicElements
### Community 1002 - "Community 1002"
Cohesion: 0.67
Nodes (3): GET `/api/v1/representation/{uuid}/dashboard/yearly`, Query Parameters, Response `200`
### Community 1004 - "Community 1004"
Cohesion: 0.67
Nodes (3): 34. 🔵 `POST` image logo, هدرهای اضافی, پاسخ‌ها
### Community 1005 - "Community 1005"
Cohesion: 0.67
Nodes (3): 36. 🟢 `GET` get my rate, هدرهای اضافی, پاسخ‌ها
### Community 1007 - "Community 1007"
Cohesion: 0.40
Nodes (5): Errors, GET `/api/v1/clinic/my-doctor/{doctorUuid}`, Path Parameters, Response `200`, Schedule Fields Notes
Cohesion: 0.67
Nodes (3): 42. 🔴 `DELETE` delete, هدرهای اضافی, پاسخ‌ها
### Community 1008 - "Community 1008"
Cohesion: 0.40
Nodes (5): Errors, PATCH `/api/v1/doctor/{uuid}`, Path Parameters, Request Body (`application/json`), Response `200`
### Community 1009 - "Community 1009"
Cohesion: 0.40
Nodes (5): Errors, PATCH `/api/v1/clinic-pro/doctor-address/{id}`, Path Parameters, Request Body, Response `200`
Cohesion: 0.67
Nodes (3): 43. 🟢 `GET` get, هدرهای اضافی, پاسخ‌ها
### Community 1010 - "Community 1010"
Cohesion: 0.40
Nodes (5): DELETE `/api/v1/billing/tenant-insurances/{uuid}`, GET `/api/v1/billing/tenant-insurances`, PATCH `/api/v1/billing/tenant-insurances/{uuid}`, POST `/api/v1/billing/tenant-insurances`, TenantInsurance — قراردادهای بیمه‌ی tenant (فاز ۱ سیستم صورتحساب)
### Community 1015 - "Community 1015"
Cohesion: 0.50
Nodes (4): DELETE `/api/v1/doctor/{uuid}`, Errors, Path Parameters, Response `200`
### Community 1019 - "Community 1019"
Cohesion: 0.50
Nodes (4): Errors, POST `/api/v1/doctor`, Request Body (`application/json`), Response `201`
### Community 1020 - "Community 1020"
Cohesion: 0.50
Nodes (4): Errors, GET `/api/v1/doctor/{uuid}`, Path Parameters, Response `200`
### Community 1021 - "Community 1021"
Cohesion: 0.50
Nodes (4): Errors, POST `/file/upload/clinic_pro/doctor/field_image`, Request, Response `200`
### Community 1022 - "Community 1022"
Cohesion: 0.50
Nodes (4): Errors, POST `/api/v1/clinic-pro/doctor-address`, Request Body, Response `201`
### Community 1023 - "Community 1023"
Cohesion: 0.50
Nodes (4): Errors, Path Parameters, POST `/api/v1/clinic-pro/doctor-address/from-clinic/{clinicUuid}`, Response `201`
### Community 1024 - "Community 1024"
Cohesion: 0.50
Nodes (4): Errors, GET `/api/v1/admin/insurances`, Query Parameters, Response `200`
@@ -4083,24 +4080,24 @@ Cohesion: 0.67
Nodes (3): POST `/api/v1/admin/insurance/{id}/upload-logo`, Request, Response `200`
## Knowledge Gaps
- **5317 isolated node(s):** `PORT`, `ROLES`, `[cmd, ...argv]`, `positional`, `opts` (+5312 more)
- **5330 isolated node(s):** `PORT`, `ROLES`, `[cmd, ...argv]`, `positional`, `opts` (+5325 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **242 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **249 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 `Altcha` connect `Community 367` to `Community 485`?**
_High betweenness centrality (0.116) - this node is a cross-community bridge._
- **Why does `SiteConfigRepository` connect `Community 451` to `Community 704`, `Community 608`, `Community 485`, `Community 421`, `Community 677`, `Community 169`, `Community 205`, `Community 15`, `Community 367`, `Community 881`, `Community 759`, `Community 637`, `Community 254`?**
_High betweenness centrality (0.106) - this node is a cross-community bridge._
- **Why does `ApiTestCase` connect `Community 86` to `Community 0`, `Community 16`, `Community 531`, `Community 534`, `Community 535`, `Community 538`, `Community 539`, `Community 541`, `Community 562`, `Community 565`, `Community 59`, `Community 574`, `Community 575`, `Community 578`, `Community 583`, `Community 594`, `Community 82`, `Community 609`, `Community 633`, `Community 640`, `Community 646`, `Community 652`, `Community 658`, `Community 659`, `Community 685`, `Community 690`, `Community 697`, `Community 704`, `Community 710`, `Community 715`, `Community 717`, `Community 719`, `Community 730`, `Community 743`, `Community 744`, `Community 748`, `Community 765`, `Community 766`, `Community 768`, `Community 775`, `Community 779`, `Community 784`, `Community 791`, `Community 804`, `Community 294`, `Community 300`, `Community 826`, `Community 828`, `Community 318`, `Community 837`, `Community 840`, `Community 851`, `Community 854`, `Community 856`, `Community 871`, `Community 887`, `Community 907`, `Community 403`, `Community 917`, `Community 918`, `Community 920`, `Community 921`, `Community 927`, `Community 928`, `Community 421`, `Community 936`, `Community 424`, `Community 431`, `Community 943`, `Community 442`, `Community 954`, `Community 445`, `Community 959`, `Community 451`, `Community 963`, `Community 455`, `Community 968`, `Community 971`, `Community 978`, `Community 983`, `Community 480`, `Community 482`, `Community 483`, `Community 484`, `Community 486`, `Community 492`, `Community 497`?**
_High betweenness centrality (0.057) - this node is a cross-community bridge._
- **Why does `Altcha` connect `Community 367` to `Community 1001`, `Community 485`?**
_High betweenness centrality (0.108) - this node is a cross-community bridge._
- **Why does `SiteConfigRepository` connect `Community 451` to `Community 704`, `Community 608`, `Community 485`, `Community 421`, `Community 677`, `Community 169`, `Community 205`, `Community 206`, `Community 15`, `Community 367`, `Community 881`, `Community 637`, `Community 254`?**
_High betweenness centrality (0.097) - this node is a cross-community bridge._
- **Why does `ApiTestCase` connect `Community 86` to `Community 0`, `Community 16`, `Community 531`, `Community 534`, `Community 535`, `Community 538`, `Community 539`, `Community 541`, `Community 562`, `Community 565`, `Community 59`, `Community 574`, `Community 575`, `Community 578`, `Community 583`, `Community 594`, `Community 82`, `Community 609`, `Community 633`, `Community 126`, `Community 640`, `Community 646`, `Community 652`, `Community 658`, `Community 659`, `Community 685`, `Community 690`, `Community 697`, `Community 704`, `Community 710`, `Community 715`, `Community 717`, `Community 719`, `Community 730`, `Community 230`, `Community 743`, `Community 744`, `Community 748`, `Community 765`, `Community 766`, `Community 768`, `Community 775`, `Community 779`, `Community 784`, `Community 791`, `Community 804`, `Community 294`, `Community 823`, `Community 826`, `Community 828`, `Community 318`, `Community 837`, `Community 840`, `Community 851`, `Community 854`, `Community 856`, `Community 871`, `Community 887`, `Community 907`, `Community 403`, `Community 917`, `Community 918`, `Community 920`, `Community 921`, `Community 927`, `Community 928`, `Community 936`, `Community 424`, `Community 431`, `Community 943`, `Community 442`, `Community 444`, `Community 957`, `Community 445`, `Community 959`, `Community 451`, `Community 455`, `Community 968`, `Community 971`, `Community 972`, `Community 978`, `Community 983`, `Community 480`, `Community 482`, `Community 483`, `Community 484`, `Community 486`, `Community 492`, `Community 497`?**
_High betweenness centrality (0.048) - this node is a cross-community bridge._
- **What connects `PORT`, `ROLES`, `[cmd, ...argv]` to the rest of the system?**
_5317 weakly-connected nodes found - possible documentation gaps or missing edges._
_5330 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.06073871409028728 - nodes in this community are weakly interconnected._
_Cohesion score 0.06392405063291139 - nodes in this community are weakly interconnected._
- **Should `Community 1` be split into smaller, more focused modules?**
_Cohesion score 0.05573770491803279 - nodes in this community are weakly interconnected._
_Cohesion score 0.07878787878787878 - nodes in this community are weakly interconnected._
- **Should `Community 2` be split into smaller, more focused modules?**
_Cohesion score 0.09523809523809523 - nodes in this community are weakly interconnected._
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_messagehandler_publishscheduledblogshandler_php", "label": "PublishScheduledBlogsHandler.php", "file_type": "code", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L1"}, {"id": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler", "label": "PublishScheduledBlogsHandler", "file_type": "code", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L9"}, {"id": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L12"}, {"id": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_invoke", "label": ".__invoke()", "file_type": "code", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L14"}, {"id": "publishscheduledblogsmessage", "label": "PublishScheduledBlogsMessage", "file_type": "code", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L14"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_messagehandler_publishscheduledblogshandler_php", "target": "publishscheduledblogsmessage", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_messagehandler_publishscheduledblogshandler_php", "target": "scheduledblogpublisher", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L6", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_messagehandler_publishscheduledblogshandler_php", "target": "asmessagehandler", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L7", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_messagehandler_publishscheduledblogshandler_php", "target": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L9", "weight": 1.0}, {"source": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler", "target": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L12", "weight": 1.0}, {"source": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler", "target": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_invoke", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L14", "weight": 1.0}, {"source": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_invoke", "target": "publishscheduledblogsmessage", "relation": "references", "confidence": "EXTRACTED", "source_file": "src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L14", "weight": 1.0, "context": "parameter_type"}], "raw_calls": [{"caller_nid": "messagehandler_publishscheduledblogshandler_publishscheduledblogshandler_invoke", "callee": "publishDue", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/MessageHandler/PublishScheduledBlogsHandler.php", "source_location": "L16", "receiver": null}]}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_service_scheduledblogpublisher_php", "label": "ScheduledBlogPublisher.php", "file_type": "code", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L1"}, {"id": "service_scheduledblogpublisher_scheduledblogpublisher", "label": "ScheduledBlogPublisher", "file_type": "code", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L13"}, {"id": "service_scheduledblogpublisher_scheduledblogpublisher_construct", "label": ".__construct()", "file_type": "code", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L15"}, {"id": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "label": ".publishDue()", "file_type": "code", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L18"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_service_scheduledblogpublisher_php", "target": "blog", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L5", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_service_scheduledblogpublisher_php", "target": "blogrepository", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L6", "weight": 1.0}, {"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_service_scheduledblogpublisher_php", "target": "service_scheduledblogpublisher_scheduledblogpublisher", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L13", "weight": 1.0}, {"source": "service_scheduledblogpublisher_scheduledblogpublisher", "target": "service_scheduledblogpublisher_scheduledblogpublisher_construct", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L15", "weight": 1.0}, {"source": "service_scheduledblogpublisher_scheduledblogpublisher", "target": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "relation": "method", "confidence": "EXTRACTED", "source_file": "src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L18", "weight": 1.0}], "raw_calls": [{"caller_nid": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "callee": "time", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L20", "receiver": null}, {"caller_nid": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "callee": "findDueForPublish", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L21", "receiver": null}, {"caller_nid": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "callee": "setStatus", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L23", "receiver": null}, {"caller_nid": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "callee": "save", "is_member_call": true, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L24", "receiver": null}, {"caller_nid": "service_scheduledblogpublisher_scheduledblogpublisher_publishdue", "callee": "count", "is_member_call": false, "source_file": "/Users/hamed/pj/my_pj/clinic_pro/clinicpro/src/Blog/Service/ScheduledBlogPublisher.php", "source_location": "L26", "receiver": null}]}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [], "edges": [], "skipped": "data json (non-object root)"}
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 one or more lines are too long
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 one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"nodes": [{"id": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_message_publishscheduledblogsmessage_php", "label": "PublishScheduledBlogsMessage.php", "file_type": "code", "source_file": "src/Blog/Message/PublishScheduledBlogsMessage.php", "source_location": "L1"}, {"id": "message_publishscheduledblogsmessage_publishscheduledblogsmessage", "label": "PublishScheduledBlogsMessage", "file_type": "code", "source_file": "src/Blog/Message/PublishScheduledBlogsMessage.php", "source_location": "L9"}], "edges": [{"source": "users_hamed_pj_my_pj_clinic_pro_clinicpro_src_blog_message_publishscheduledblogsmessage_php", "target": "message_publishscheduledblogsmessage_publishscheduledblogsmessage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "src/Blog/Message/PublishScheduledBlogsMessage.php", "source_location": "L9", "weight": 1.0}], "raw_calls": []}
+1 -1
View File
File diff suppressed because one or more lines are too long
+6752 -1335
View File
File diff suppressed because it is too large Load Diff
+97 -27
View File
@@ -1,7 +1,7 @@
{
"assets/admin/App.tsx": {
"mtime": 1784821343.1686423,
"ast_hash": "8d0f3c0273b7b5b645e5fddb8d7359ec",
"mtime": 1784831992.3266897,
"ast_hash": "6b902b7c35bb843dcfab42aee1e2eb48",
"semantic_hash": ""
},
"assets/admin/components/FreeVisitPrice.tsx": {
@@ -25,8 +25,8 @@
"semantic_hash": ""
},
"assets/admin/components/layout/Sidebar.tsx": {
"mtime": 1784821343.181366,
"ast_hash": "842a0b95d3969899ec84ceeda1af6989",
"mtime": 1784832014.641408,
"ast_hash": "a860a3d04d223ed08b57aec41345e3f1",
"semantic_hash": ""
},
"assets/admin/components/layout/Topbar.tsx": {
@@ -175,13 +175,13 @@
"semantic_hash": ""
},
"assets/admin/pages/BlogFormPage.tsx": {
"mtime": 1784464897.2620423,
"ast_hash": "8bdbc53c107f2dbce99fdee9a64c2d21",
"mtime": 1784831833.102739,
"ast_hash": "bf0a41cb2de56ca7a74675e67649f399",
"semantic_hash": ""
},
"assets/admin/pages/BlogsPage.tsx": {
"mtime": 1781817770.5734062,
"ast_hash": "1ab9c9a8ef677a4e1bc6b9498fe0d447",
"mtime": 1784832554.7215295,
"ast_hash": "551ff0ce1104b38469e51709a34c9590",
"semantic_hash": ""
},
"assets/admin/pages/CategoriesPage.tsx": {
@@ -390,8 +390,8 @@
"semantic_hash": ""
},
"assets/admin/types/index.ts": {
"mtime": 1784821343.205508,
"ast_hash": "3e204571b2ed5099839d2fefc424d49a",
"mtime": 1784831723.3485844,
"ast_hash": "ed0c9b650854a4383f89e29ca5917362",
"semantic_hash": ""
},
"assets/app.js": {
@@ -1045,18 +1045,18 @@
"semantic_hash": ""
},
"src/Blog/Controller/BlogController.php": {
"mtime": 1784464902.5949547,
"ast_hash": "a88536dda2ec125e479c484b528cd55e",
"mtime": 1784832534.1222217,
"ast_hash": "23361eaa37fa48dd8c997f8e76537aa8",
"semantic_hash": ""
},
"src/Blog/Entity/Blog.php": {
"mtime": 1784464902.5953171,
"ast_hash": "be06e1eefdafb77974b9e660892e8ad2",
"mtime": 1784828681.2469935,
"ast_hash": "974c4c09eccde317f1cc524e5b240d25",
"semantic_hash": ""
},
"src/Blog/Repository/BlogRepository.php": {
"mtime": 1784464902.5960205,
"ast_hash": "0223a7b12c86432a525998d6930ed3b9",
"mtime": 1784832521.5786533,
"ast_hash": "914456f5fe9f005865b89bfe523a2a09",
"semantic_hash": ""
},
"src/Category/Controller/CategoryController.php": {
@@ -1175,7 +1175,7 @@
"semantic_hash": ""
},
"src/Doctor/Entity/Doctor.php": {
"mtime": 1784822772.9335277,
"mtime": 1784823022.5547647,
"ast_hash": "8d764edf0c81bde1c04a0a6ec8dd1eb0",
"semantic_hash": ""
},
@@ -1190,7 +1190,7 @@
"semantic_hash": ""
},
"src/Doctor/Repository/DoctorRepository.php": {
"mtime": 1784822543.1622179,
"mtime": 1784823022.5551465,
"ast_hash": "d46bdb166f11771d7c7788878c0b759d",
"semantic_hash": ""
},
@@ -1460,8 +1460,8 @@
"semantic_hash": ""
},
"src/Schedule.php": {
"mtime": 1782929801.2075908,
"ast_hash": "af316acd9e95a609a79930f784f9b0d7",
"mtime": 1784828998.528498,
"ast_hash": "e4e6ec21c38c96851028f1eb6fb6a256",
"semantic_hash": ""
},
"src/Secretary/Controller/SecretaryController.php": {
@@ -2350,8 +2350,8 @@
"semantic_hash": ""
},
"docs/api/blog.md": {
"mtime": 1784464897.3127716,
"ast_hash": "2ef9006bee09c2f6ce43a4c6d6b6ba61",
"mtime": 1784832622.312016,
"ast_hash": "7c51f67f77e8c1718ea4e4988ae0343f",
"semantic_hash": ""
},
"docs/api/clinic-invitation.md": {
@@ -2380,7 +2380,7 @@
"semantic_hash": ""
},
"docs/api/doctor.md": {
"mtime": 1784822838.7947938,
"mtime": 1784823022.5221283,
"ast_hash": "8eca9c8915df3f0ae2cc253d55ac66a3",
"semantic_hash": ""
},
@@ -3430,8 +3430,8 @@
"semantic_hash": ""
},
"data/seed/specialties.json": {
"mtime": 1782843868.7755058,
"ast_hash": "37dc79f859896696d1f7dd74afecfabe",
"mtime": 1784823581.0108852,
"ast_hash": "3559a71001bd0a27badd6dad5822fe3f",
"semantic_hash": ""
},
"src/Category/Command/SeedCategoriesCommand.php": {
@@ -5705,7 +5705,7 @@
"semantic_hash": ""
},
"tests/Doctor/DoctorBookingStateAggregationTest.php": {
"mtime": 1784822819.154374,
"mtime": 1784823022.555536,
"ast_hash": "e4f93440892bae28c82e24c25feee15a",
"semantic_hash": ""
},
@@ -5995,7 +5995,7 @@
"semantic_hash": ""
},
"tests/Doctor/DoctorListBookableSortFilterTest.php": {
"mtime": 1784822561.47978,
"mtime": 1784823022.5561688,
"ast_hash": "2e5dc97dcd853579435a8a488c9c5581",
"semantic_hash": ""
},
@@ -6168,5 +6168,75 @@
"mtime": 1784821343.166428,
"ast_hash": "8559d93c94f2ac1823dbe12719f91a49",
"semantic_hash": ""
},
"assets/admin/components/BlogSeoFields.tsx": {
"mtime": 1784831755.076446,
"ast_hash": "37d0fc6468627abeac43d385274dc66e",
"semantic_hash": ""
},
"assets/admin/lib/blogForm.ts": {
"mtime": 1784831709.0363271,
"ast_hash": "9ff4e618e053bb68ebb1998b21615628",
"semantic_hash": ""
},
"assets/admin/pages/BlogReviewPage.tsx": {
"mtime": 1784827652.504635,
"ast_hash": "a2c840c1032be29b58d4e28db09e7d1c",
"semantic_hash": ""
},
"assets/admin/pages/RepresentationBlogFormPage.tsx": {
"mtime": 1784831967.567576,
"ast_hash": "8750fe4e2688814ee6c945bb9d0f2e58",
"semantic_hash": ""
},
"assets/admin/pages/RepresentationBlogsPage.tsx": {
"mtime": 1784831911.095439,
"ast_hash": "08e71e0e7f4d3dc7b78033d780057d61",
"semantic_hash": ""
},
"migrations/Version20260723171254.php": {
"mtime": 1784826839.1788676,
"ast_hash": "86223b6d7376315ae2e19db40a273812",
"semantic_hash": ""
},
"migrations/Version20260723174500.php": {
"mtime": 1784828788.9777613,
"ast_hash": "1e886c08c390bcbb457fdb914e8fec0c",
"semantic_hash": ""
},
"src/Blog/Controller/RepresentationBlogController.php": {
"mtime": 1784831934.5515826,
"ast_hash": "3804800c81efad5b1d055c10ed02a5bd",
"semantic_hash": ""
},
"src/Blog/Message/PublishScheduledBlogsMessage.php": {
"mtime": 1784828956.9272017,
"ast_hash": "f552319d03edf50b5eb8a84b39993431",
"semantic_hash": ""
},
"src/Blog/MessageHandler/PublishScheduledBlogsHandler.php": {
"mtime": 1784828984.3631573,
"ast_hash": "4bacc58f12cecee06911faa4b9f37086",
"semantic_hash": ""
},
"src/Blog/Service/BlogWriter.php": {
"mtime": 1784828846.2465687,
"ast_hash": "617cc58a81689df9715f5fdbe054f70d",
"semantic_hash": ""
},
"src/Blog/Service/ScheduledBlogPublisher.php": {
"mtime": 1784828975.9962785,
"ast_hash": "51761262e3c3e0b8428fe2a82626736d",
"semantic_hash": ""
},
"tests/Blog/BlogReviewGateTest.php": {
"mtime": 1784827020.0868497,
"ast_hash": "301ac9b8d41119a0774bb11ea0349eca",
"semantic_hash": ""
},
"tests/Blog/BlogV2FieldsTest.php": {
"mtime": 1784832570.7668114,
"ast_hash": "862ef65b7bb2d3e8a04a01a1cc7e52d7",
"semantic_hash": ""
}
}