Refactor code structure for improved readability and maintainability

This commit is contained in:
hamed
2026-07-23 19:21:20 +03:30
parent aa842b883d
commit 46be6a4575
8 changed files with 1535 additions and 1616 deletions
+1 -23
View File
@@ -954,33 +954,21 @@
"952": "Community 952",
"953": "Community 953",
"954": "Community 954",
"955": "Community 955",
"956": "Community 956",
"957": "Community 957",
"958": "Community 958",
"959": "Community 959",
"960": "Community 960",
"961": "Community 961",
"962": "Community 962",
"963": "Community 963",
"964": "Community 964",
"965": "Community 965",
"966": "Community 966",
"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",
@@ -988,32 +976,24 @@
"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",
"1011": "Community 1011",
"1012": "Community 1012",
"1013": "Community 1013",
"1014": "Community 1014",
"1015": "Community 1015",
"1016": "Community 1016",
"1017": "Community 1017",
@@ -1033,7 +1013,5 @@
"1031": "Community 1031",
"1032": "Community 1032",
"1033": "Community 1033",
"1034": "Community 1034",
"1035": "Community 1035",
"1036": "Community 1036"
"1034": "Community 1034"
}
+124 -206
View File
@@ -1,16 +1,16 @@
# Graph Report - clinicpro (2026-07-23)
## Corpus Check
- 1202 files · ~868,980 words
- 1202 files · ~868,940 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 14086 nodes · 22089 edges · 1037 communities (793 shown, 244 thin omitted)
- 14087 nodes · 22090 edges · 1015 communities (778 shown, 237 thin omitted)
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 465 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `f33c7a3e`
- Built from commit: `aa842b88`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -953,33 +953,21 @@
- [[_COMMUNITY_Community 952|Community 952]]
- [[_COMMUNITY_Community 953|Community 953]]
- [[_COMMUNITY_Community 954|Community 954]]
- [[_COMMUNITY_Community 955|Community 955]]
- [[_COMMUNITY_Community 956|Community 956]]
- [[_COMMUNITY_Community 957|Community 957]]
- [[_COMMUNITY_Community 958|Community 958]]
- [[_COMMUNITY_Community 959|Community 959]]
- [[_COMMUNITY_Community 960|Community 960]]
- [[_COMMUNITY_Community 961|Community 961]]
- [[_COMMUNITY_Community 962|Community 962]]
- [[_COMMUNITY_Community 963|Community 963]]
- [[_COMMUNITY_Community 964|Community 964]]
- [[_COMMUNITY_Community 965|Community 965]]
- [[_COMMUNITY_Community 966|Community 966]]
- [[_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]]
@@ -987,32 +975,24 @@
- [[_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 1003|Community 1003]]
- [[_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 1011|Community 1011]]
- [[_COMMUNITY_Community 1012|Community 1012]]
- [[_COMMUNITY_Community 1013|Community 1013]]
- [[_COMMUNITY_Community 1014|Community 1014]]
- [[_COMMUNITY_Community 1015|Community 1015]]
- [[_COMMUNITY_Community 1016|Community 1016]]
- [[_COMMUNITY_Community 1017|Community 1017]]
@@ -1033,8 +1013,6 @@
- [[_COMMUNITY_Community 1032|Community 1032]]
- [[_COMMUNITY_Community 1033|Community 1033]]
- [[_COMMUNITY_Community 1034|Community 1034]]
- [[_COMMUNITY_Community 1035|Community 1035]]
- [[_COMMUNITY_Community 1036|Community 1036]]
## God Nodes (most connected - your core abstractions)
1. `ApiTestCase` - 232 edges
@@ -1053,25 +1031,25 @@
.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
## Import Cycles
- None detected.
## Communities (1037 total, 244 thin omitted)
## Communities (1015 total, 237 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.06
Nodes (18): ClinicOwnerScheduleAccessTest, ClinicDoctorPermissionTest, ClinicDoctorPermissionRepository, ClinicDoctorPermission, ClinicRecordAccessTest, ClinicDoctorPermissionChecker, Clinic, Doctor (+10 more)
Nodes (19): ClinicAppointmentAccessTest, ClinicDoctorPermissionTest, ClinicDoctorPermissionRepository, ClinicDoctorPermission, ClinicRecordAccessTest, ClinicDoctorPermissionChecker, Clinic, Doctor (+11 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.03
Nodes (95): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), RoleRoute(), queryClient, toastStyle, TenantInsuranceContracts(), EMPTY_CATS (+87 more)
### Community 2 - "Community 2"
Cohesion: 0.10
@@ -1083,7 +1061,7 @@ Nodes (20): `RepresentationActionController` — welcome به‌صورت inline
### Community 4 - "Community 4"
Cohesion: 0.08
Nodes (3): Doctor, Collection, self
Nodes (3): Doctor, Collection, User
### Community 5 - "Community 5"
Cohesion: 0.06
@@ -1094,12 +1072,12 @@ Cohesion: 0.17
Nodes (8): SettlementController, SettlementRepository, Settlement, JsonResponse, Request, User, ManagerRegistry, User
### Community 7 - "Community 7"
Cohesion: 0.09
Nodes (4): Clinic, Collection, Doctor, User
Cohesion: 0.06
Nodes (8): DoctorService, Clinic, DoctorServiceRepository, Collection, Doctor, self, User, ManagerRegistry
### Community 8 - "Community 8"
Cohesion: 0.04
Nodes (42): DoctorTab, PickedService, ServicePick, ServiceSlot, ServiceSlotPicker(), get, services, td (+34 more)
Nodes (37): DoctorTab, StatDef, TurnsStats, td, th, CANCELLED_STATUSES, EMPTY_SLOT_CONFIG, STATUS (+29 more)
### Community 9 - "Community 9"
Cohesion: 0.04
@@ -1110,8 +1088,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.05
Nodes (36): numericField(), CitiesTab(), CityForm, citySchema, DoctorServicesTab(), ImportError, InsuranceForm, insuranceSchema (+28 more)
### Community 12 - "Community 12"
Cohesion: 0.04
@@ -1119,7 +1097,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 (136): appointment, get, post, render(), PickedService, ServicePick, ServiceSlot, ServiceSlotPicker() (+128 more)
### Community 14 - "Community 14"
Cohesion: 0.09
@@ -1130,8 +1108,8 @@ Cohesion: 0.25
Nodes (7): PaymentController, Appointment, JsonResponse, Payment, Request, Response, User
### Community 16 - "Community 16"
Cohesion: 0.04
Nodes (10): PatientSession, SmsWallet, Appointment, Collection, InventoryPackage, PatientRecord, self, SessionConsumable (+2 more)
Cohesion: 0.05
Nodes (8): PatientSession, Appointment, Collection, InventoryPackage, PatientRecord, SessionConsumable, SessionPayment, SessionService
### Community 17 - "Community 17"
Cohesion: 0.05
@@ -1150,8 +1128,8 @@ Cohesion: 0.12
Nodes (5): AdminApiController, RepresentationRepository, JsonResponse, Request, StreamedResponse
### Community 21 - "Community 21"
Cohesion: 0.28
Nodes (6): ClinicServiceController, JsonResponse, Request, ServiceItem, ServiceSection, User
Cohesion: 0.06
Nodes (28): SessionPaymentAccordion(), SessionPaymentData, paid, unpaid, InvoicePaymentRow, InvoiceRowStatus, MY_PAYMENTS_LIMIT, PatientInvoiceRow (+20 more)
### Community 22 - "Community 22"
Cohesion: 0.16
@@ -1174,8 +1152,8 @@ Cohesion: 0.24
Nodes (5): InsuranceController, EntityInsurancePricing, JsonResponse, Request, User
### Community 27 - "Community 27"
Cohesion: 0.06
Nodes (35): 55. 🟢 `GET` all tag, 56. 🟢 `GET` supplementary_insurance, 57. 🟢 `GET` categories list, 58. 🟢 `GET` all state, 59. 🟢 `GET` all city, 60. 🟢 `GET` all specially doctor, 61. 🔵 `POST` post, 63. 🔴 `DELETE` DELETE (+27 more)
Cohesion: 0.05
Nodes (40): 55. 🟢 `GET` all tag, 56. 🟢 `GET` supplementary_insurance, 57. 🟢 `GET` categories list, 58. 🟢 `GET` all state, 59. 🟢 `GET` all city, 60. 🟢 `GET` all specially doctor, 61. 🔵 `POST` post, 62. 🟡 `PATCH` patch (+32 more)
### Community 28 - "Community 28"
Cohesion: 0.06
@@ -1198,8 +1176,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.20
Nodes (6): AuthController, RateLimiterFactory, ClinicDoctorPermission, JsonResponse, Request, User
Cohesion: 0.07
Nodes (25): CoverageRow, Draft, KIND, TenantInsurance, EMPTY_FORM, ItemForm, itemSchema, Props (+17 more)
### Community 34 - "Community 34"
Cohesion: 0.05
@@ -1263,7 +1241,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 (75): ConfirmAppointmentModal(), AppointmentInfoModal(), ModalKind, PickedPatient, PickerOption, ReplaceAppointmentModal(), toEpoch(), TransferReserveModal() (+67 more)
### Community 50 - "Community 50"
Cohesion: 0.07
@@ -1279,7 +1257,7 @@ Nodes (26): الزامات UI, باگ‌فیکس صفحه نوبت‌ها, با
### Community 53 - "Community 53"
Cohesion: 0.06
Nodes (21): AppointmentEvent, AppLogRepository, PaymentLog, AppointmentEventRepository, ClaimItemRepository, DoctorClaimRequestRepository, InvoiceItemRepository, PaymentLogRepository (+13 more)
Nodes (20): AppLogRepository, ClaimItemRepository, DoctorClaimRequestRepository, PreRegistrationRepository, ProvinceRepository, SessionConsumableRepository, SiteConfigRepository, TaxRateHistoryRepository (+12 more)
### Community 54 - "Community 54"
Cohesion: 0.10
@@ -1302,8 +1280,8 @@ Cohesion: 0.29
Nodes (5): BlogController, City, JsonResponse, Request, User
### Community 59 - "Community 59"
Cohesion: 0.07
Nodes (14): ClinicController, SpecialtyController, DoctorSpecialtyParentsTest, Specialty, SpecialtyRepository, Clinic, DoctorAddress, JsonResponse (+6 more)
Cohesion: 0.22
Nodes (6): ClinicController, Clinic, DoctorAddress, JsonResponse, Request, User
### Community 60 - "Community 60"
Cohesion: 0.08
@@ -1314,16 +1292,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.05
Nodes (47): AppointmentLike, METHOD_OPTIONS, PaymentRow, Props, rowStyle, ServiceItem, STATE_TONE, MethodOption (+39 more)
### Community 63 - "Community 63"
Cohesion: 0.01
Nodes (185): ALLOWED_ROLES, PrivateRoute(), PublicRoute(), queryClient, toastStyle, ClinicDoctorsManager(), ClinicInvitation, HUES_LIST (+177 more)
Cohesion: 0.02
Nodes (147): PaginatedResponse, formatDate(), emptyFeatures(), FEATURE_KEYS, FEATURE_LABELS, PeriodForm, periodSchema, PLAN_DISPLAY (+139 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
@@ -1395,7 +1373,7 @@ Nodes (30): devDependencies, @babel/core, @babel/preset-env, @babel/preset-react
### Community 86 - "Community 86"
Cohesion: 0.03
Nodes (24): AppointmentExpiryServiceTest, BookingModeImmutableTest, BookingServicesPublicTest, ServiceBasedSlotsTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, CaptchaFlowTest (+16 more)
Nodes (23): BookingServicesPublicTest, DateOverrideOwnershipTest, LowTierFixesTest, SendCodeMobileRateLimitTest, ClaimsListPaginationTest, CaptchaFlowTest, ServiceItemMultiStaffTest, ServiceItemStaffOwnershipTest (+15 more)
### Community 87 - "Community 87"
Cohesion: 0.10
@@ -1458,7 +1436,7 @@ Cohesion: 0.10
Nodes (19): Backend — endpoint اشتراک, Frontend — App.tsx, Frontend — authStore, Frontend — Sidebar, اعمال محدودیت‌های اشتراک در پنل ادمین (Frontend Gate), ترتیب اجرا, زمینه, فایل‌های مرتبط (+11 more)
### Community 102 - "Community 102"
Cohesion: 0.07
Cohesion: 0.08
Nodes (26): Bulk import / export, DELETE `/api/v1/admin/tag/{id}`, DELETE `/api/v1/tenant-tag/{uuid}`, Errors, Errors, Errors, Errors, Errors (+18 more)
### Community 103 - "Community 103"
@@ -1466,8 +1444,8 @@ Cohesion: 0.11
Nodes (18): `AdminApiController::paymentDetail` — الان فقط GET, `MellatGateway.php` — الگوی موجود REST/SOAP (پس از کار sandbox), `PaymentGatewayInterface.php`, `PaymentManager.php` — الگوی log و transaction, برگشت/استرداد وجه ملت از پنل ادمین (bpReversalRequest / bpRefundRequest), زمینه, فایل‌های مرتبط, نکات مهم (+10 more)
### Community 104 - "Community 104"
Cohesion: 0.18
Nodes (6): TagController, TagRepository, JsonResponse, Request, ManagerRegistry, Tag
Cohesion: 0.35
Nodes (3): TagController, JsonResponse, Request
### Community 105 - "Community 105"
Cohesion: 0.11
@@ -1482,8 +1460,8 @@ Cohesion: 0.24
Nodes (8): AppointmentController, Appointment, Clinic, Doctor, JsonResponse, Request, User, WeeklySchedule
### Community 108 - "Community 108"
Cohesion: 0.11
Nodes (13): CaptchaController, BaseController, CategoryController, DoctorImportController, SiteContextController, JsonResponse, JsonResponse, Request (+5 more)
Cohesion: 0.09
Nodes (16): CaptchaController, BaseController, CategoryController, CategoryImportController, DoctorImportController, SiteContextController, JsonResponse, JsonResponse (+8 more)
### Community 109 - "Community 109"
Cohesion: 0.29
@@ -1686,8 +1664,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 (85): latinDigitsField(), NumericFieldProps, wrap(), cn(), digitsOnly(), displayDoctorName(), iranMobileOptionalSchema, iranMobileSchema (+77 more)
### Community 162 - "Community 162"
Cohesion: 0.10
@@ -1718,8 +1696,8 @@ Cohesion: 0.10
Nodes (20): api.ir (استعلام هویت — Shahkar / IbanMatch), اتصال به دیتابیس‌های مستقل (الزامی), اسرار (الزامی — قبل از اولین دیپلوی), امنیت و منابع, بررسی سلامت, دامنه‌ها و CORS, دیپلوی‌های بعدی, راهنمای دیپلوی ClinicPro (Coolify + Docker Compose) (+12 more)
### Community 169 - "Community 169"
Cohesion: 0.10
Nodes (10): SourceProfileIdTest, MellatGatewayTest, ErrorCodesTest, HealthControllerTest, TimezoneTest, ActivateTrialTest, SubscriptionService, TestCase (+2 more)
Cohesion: 0.08
Nodes (11): SourceProfileIdTest, UserProfileDemographicsTest, MellatGatewayTest, ErrorCodesTest, HealthControllerTest, TimezoneTest, KavehNegarProviderTest, TestCase (+3 more)
### Community 170 - "Community 170"
Cohesion: 0.13
@@ -1855,7 +1833,7 @@ Nodes (16): Clinic Services API, DELETE /api/v1/service-item/{uuid}, DELETE /api
### Community 204 - "Community 204"
Cohesion: 0.04
Nodes (43): useSubscription(), AdminLayout(), avatarBg(), HUES, ProfileMenu(), Role, ROLE_LABELS, settingsPath() (+35 more)
Nodes (44): useSubscription(), AdminLayout(), avatarBg(), HUES, ProfileMenu(), Role, ROLE_LABELS, settingsPath() (+36 more)
### Community 205 - "Community 205"
Cohesion: 0.21
@@ -1938,8 +1916,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.11
Nodes (21): buildInsurancePayload(), Contract, contractToForm(), EMPTY_FORM, InsuranceFormValues, InsuranceModal(), InsuranceOption, KIND_LABEL (+13 more)
Cohesion: 0.17
Nodes (6): SpecialtyController, DoctorSpecialtyParentsTest, SpecialtyRepository, JsonResponse, Request, Specialty
### Community 231 - "Community 231"
Cohesion: 0.17
@@ -2206,8 +2184,8 @@ Cohesion: 0.22
Nodes (9): require-dev, phpstan/phpstan, phpstan/phpstan-doctrine, phpstan/phpstan-symfony, phpunit/phpunit, symfony/browser-kit, symfony/css-selector, symfony/debug-bundle (+1 more)
### Community 300 - "Community 300"
Cohesion: 0.05
Nodes (32): ApiAppointment, NOT_VISITED_STATUSES, ServiceOption, STATUS_OPTIONS, NewAppointmentsTable(), AdminCharts, AdminDashboard(), AdminRecent (+24 more)
Cohesion: 0.35
Nodes (4): ClinicOwnerScheduleAccessTest, Clinic, Doctor, DoctorAddress
### Community 301 - "Community 301"
Cohesion: 0.15
@@ -2222,8 +2200,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.22
Nodes (9): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 36. 🟢 `GET` get my rate, 6. کلینیک (Clinic), هدرهای اضافی, پارامترهای Query, پاسخ‌ها, پاسخ‌ها (+1 more)
Cohesion: 0.04
Nodes (56): 29. 🟢 `GET` clinic list 🆕, 30. 🟢 `GET` get 🆕, 31. 🟡 `PATCH` patch, 32. 🔵 `POST` post, 33. 🔵 `POST` image_clinic, 34. 🔵 `POST` image logo, 35. 🟡 `PATCH` patch, 36. 🟢 `GET` get my rate (+48 more)
### Community 306 - "Community 306"
Cohesion: 0.07
@@ -2258,8 +2236,8 @@ Cohesion: 0.36
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)
Cohesion: 0.02
Nodes (119): AppointmentCardData, AppointmentTurnCard(), base, Invoice, InvoiceItem, InvoiceSummaryModal(), SessionConsumable, SessionData (+111 more)
### Community 315 - "Community 315"
Cohesion: 0.05
@@ -2589,10 +2567,6 @@ Nodes (30): انتقال برنامه کاری، اصلاح فرم تنظیما
Cohesion: 0.17
Nodes (11): MessageBusInterface, MockObject, SmsLogRepository, SmsServiceLookupOnlyTest, SmsLog, SmsLogRepository, SmsMessageTemplateRepository, SmsService (+3 more)
### Community 409 - "Community 409"
Cohesion: 0.15
Nodes (13): EMPTY, PatientFilters, PricingInsurance, TenantTag, AddTurn(), PatientsCategoryView(), PatientsGridView(), SearchHeaderP() (+5 more)
### Community 410 - "Community 410"
Cohesion: 0.08
Nodes (24): تصمیم قطعی دربارهٔ `DateOverride` و `Holiday`, جداسازی Context کلینیک و محیط شخصی پزشک در تنظیمات نوبت‌دهی, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف (+16 more)
@@ -2603,15 +2577,15 @@ Nodes (20): edge cases, خلاصهٔ خطاها و اولویت, راه‌حل,
### Community 416 - "Community 416"
Cohesion: 0.03
Nodes (95): Invoice, InvoiceItem, InvoiceSummaryModal(), SessionConsumable, SessionData, SessionPayment, STATUS_LABEL, ServiceTariffModal() (+87 more)
Nodes (83): TauriStatCards(), usePaymentConfig(), AddPackageModal(), formatDateTime(), formatNumber(), formatRial(), AdminCharts, AdminDashboard() (+75 more)
### Community 418 - "Community 418"
Cohesion: 0.17
Nodes (11): دیپلوی ClinicPro روی Coolify (Docker Compose), رفع اشکال, مراحل دیپلوی, معماری دیپلوی, نکات عملیاتی, چند دامنه فرانت‌اند (مهم), ۱. ساخت Resource در Coolify, ۲. اختصاص دامنه (+3 more)
### Community 421 - "Community 421"
Cohesion: 0.27
Nodes (5): ClinicAppointmentAccessTest, Appointment, Clinic, Doctor, User
Cohesion: 0.15
Nodes (6): UniqueConstraintsTest, FinancialBreakdown, FinancialBreakdownRepository, FinancialBreakdownIntegrityTest, ManagerRegistry, Payment
### Community 422 - "Community 422"
Cohesion: 0.12
@@ -2634,8 +2608,8 @@ 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.05
Nodes (32): AbstractAuthenticator, AuthenticationException, ErrorCodes, AuthController, ClinicServiceController, PatientController, ExceptionSubscriber, AppException (+24 more)
### Community 435 - "Community 435"
Cohesion: 0.38
@@ -2670,8 +2644,8 @@ Cohesion: 0.27
Nodes (4): RequireVisitPriceTest, Doctor, EntityInsurancePricing, PatientRecord
### Community 446 - "Community 446"
Cohesion: 0.17
Nodes (9): AbstractAuthenticator, AuthenticationException, ExceptionSubscriber, Passport, PasswordAuthenticator, Request, Response, ExceptionEvent (+1 more)
Cohesion: 0.38
Nodes (3): PurgeUnclaimedDoctorsCommandTest, CommandTester, Doctor
### Community 447 - "Community 447"
Cohesion: 0.25
@@ -2702,8 +2676,8 @@ Cohesion: 0.24
Nodes (10): gridItemStyle, JALALI_MONTHS, jalaliFirstWeekday(), jalaliToGregorian(), navBtnStyle, PersianCalendar(), pf, Props (+2 more)
### 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
@@ -2778,7 +2752,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.14
Nodes (6): Authentication, ClinicPro — API Documentation Index, Error Code Reference, Modules, Persian digit normalization (global), Standard Response Envelope
### Community 481 - "Community 481"
@@ -2838,8 +2812,8 @@ Cohesion: 0.12
Nodes (16): `AppointmentSettingsPage.tsx` (بخش render), backend — نیازی به تغییر نیست (اول گشتم), `InsuranceModal.tsx` — انتخاب دستی نوع (حذف شود), `InsurancePricingPage.tsx`, `TenantInsuranceContracts.tsx` — یک جدول مسطح، خلاصه فقط در زیرنویس نام, بازطراحی صفحه بیمه و قیمت‌گذاری — تفکیک نوع بیمه با Tab + ردیف Expandable + انتقال ویزیت آزاد, زمینه, فایل‌های مرتبط (+8 more)
### 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
@@ -3094,8 +3068,8 @@ Cohesion: 0.48
Nodes (3): DoctorInsuranceRepository, DoctorInsurance, ManagerRegistry
### Community 577 - "Community 577"
Cohesion: 0.03
Nodes (67): grid, PatientFormOptions, patientFormSchema, PatientFormValues, Props, baseValues, options, setup() (+59 more)
Cohesion: 0.06
Nodes (45): grid, PatientFormOptions, patientFormSchema, PatientFormValues, Props, baseValues, options, InvoicePayload (+37 more)
### Community 578 - "Community 578"
Cohesion: 0.36
@@ -3185,6 +3159,10 @@ Nodes (10): ایمپورت پزشکان نظام پزشکی به کلینیک‌
Cohesion: 0.34
Nodes (5): RepresentationController, JsonResponse, Representation, Request, User
### Community 608 - "Community 608"
Cohesion: 0.42
Nodes (3): ActivateTrialTest, SubscriptionService, SubscriptionPlan
### Community 612 - "Community 612"
Cohesion: 0.67
Nodes (3): بک‌اند, فرانت‌اند, وضعیت فعلی کد (مهم — قبل از تغییر بخوان)
@@ -3302,8 +3280,8 @@ Cohesion: 0.28
Nodes (4): SubscriptionService, ClinicSubscription, Payment, SubscriptionPlan
### Community 681 - "Community 681"
Cohesion: 0.15
Nodes (8): PurgeDoctorsCommandTest, PurgeUnclaimedDoctorsCommandTest, RepositoryClassMappingTest, KernelTestCase, DbLoggerTest, CommandTester, CommandTester, Doctor
Cohesion: 0.22
Nodes (5): PurgeDoctorsCommandTest, RepositoryClassMappingTest, KernelTestCase, DbLoggerTest, CommandTester
### Community 683 - "Community 683"
Cohesion: 0.33
@@ -3330,12 +3308,12 @@ Cohesion: 0.12
Nodes (16): Errors, Errors, Errors, GET `/api/v1/admin/representations`, GET `/api/v1/admin/representations/{uuid}/appointments`, GET `/api/v1/admin/representations/{uuid}/doctors`, POST `/api/v1/admin/representations/{uuid}/doctors`, Query Parameters (+8 more)
### Community 693 - "Community 693"
Cohesion: 0.21
Nodes (7): FinancialBreakdown, FinancialBreakdownRepository, CommissionService, ManagerRegistry, Payment, Payment, Representation
Cohesion: 0.47
Nodes (3): CommissionService, Payment, Representation
### Community 694 - "Community 694"
Cohesion: 0.11
Nodes (6): LoggerInterface, KavehNegarProvider, RanginehProvider, SmsService, SendSmsMessage, SmsProviderInterface
Cohesion: 0.18
Nodes (4): KavehNegarProvider, SmsService, SendSmsMessage, SmsProviderInterface
### Community 695 - "Community 695"
Cohesion: 0.67
@@ -3398,8 +3376,8 @@ Cohesion: 0.12
Nodes (15): رفع باگ: نوبت‌های رزروشده در سایت عمومی «آزاد» نمایش داده می‌شوند, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+7 more)
### Community 717 - "Community 717"
Cohesion: 0.10
Nodes (7): ServiceItemDeleteCleanupTest, ServiceCoverageNPlusOneTest, TenantInsuranceCleanupTest, TenantServiceCoverageRepository, TenantInsuranceCleanupService, ManagerRegistry, TenantServiceCoverage
Cohesion: 0.08
Nodes (11): ServiceItemDeleteCleanupTest, ServiceCoverageNPlusOneTest, TenantInsuranceCleanupTest, SessionInsuranceShareTest, TenantServiceCoverageRepository, TenantInsuranceCleanupService, ManagerRegistry, TenantServiceCoverage (+3 more)
### Community 718 - "Community 718"
Cohesion: 0.36
@@ -3433,10 +3411,6 @@ Nodes (3): PatientResolver, User, UserProfile
Cohesion: 0.15
Nodes (12): call siteهای فعلی PersianDateInput (نباید تغییر کنند — فقط برای اطمینان از سازگاری Props), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, همه‌ی تقویم‌های پنل ادمین باید شمسی باشند (رفع تقویم میلادی PersianDateInput), وضعیت فعلی (کد مشکل‌دار), وظایف (+4 more)
### Community 733 - "Community 733"
Cohesion: 0.41
Nodes (4): SessionInsuranceShareTest, Doctor, Insurance, ServiceItem
### Community 737 - "Community 737"
Cohesion: 0.33
Nodes (5): DoctorImportResult, DoctorImportService, Collection, Doctor, User
@@ -3522,8 +3496,8 @@ Cohesion: 0.36
Nodes (3): RepairImportedDoctorsCommand, InputInterface, OutputInterface
### Community 769 - "Community 769"
Cohesion: 0.39
Nodes (3): ProvinceRepository, ManagerRegistry, Province
Cohesion: 0.43
Nodes (3): SessionPaymentRepository, ManagerRegistry, SessionPayment
### Community 770 - "Community 770"
Cohesion: 0.18
@@ -3554,8 +3528,8 @@ Cohesion: 0.24
Nodes (4): InventoryPackageItem, InventoryItem, InventoryPackage, self
### Community 782 - "Community 782"
Cohesion: 0.10
Nodes (16): Command, AuditScheduleLocationsCommand, CancelExpiredAppointmentsCommand, PruneLogsCommand, SeedCategoriesCommand, SeedSmsMessageTemplatesCommand, InputInterface, OutputInterface (+8 more)
Cohesion: 0.08
Nodes (19): Command, BackfillAppointmentSessionsCommand, CancelExpiredAppointmentsCommand, NormalizeScheduleFormatCommand, PruneLogsCommand, PurgeDoctorsCommand, RepairAcceptedInvitationsCommand, InputInterface (+11 more)
### Community 783 - "Community 783"
Cohesion: 0.13
@@ -3574,12 +3548,8 @@ Cohesion: 0.50
Nodes (4): Errors, GET `/oauth/userinfo`, Headers, Response `200`
### Community 789 - "Community 789"
Cohesion: 0.23
Nodes (4): DoctorService, DoctorServiceRepository, User, ManagerRegistry
### Community 791 - "Community 791"
Cohesion: 0.40
Nodes (5): 32. 🔵 `POST` post, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
Cohesion: 0.39
Nodes (3): TagRepository, ManagerRegistry, Tag
### Community 792 - "Community 792"
Cohesion: 0.48
@@ -3593,6 +3563,10 @@ Nodes (4): Errors, POST `/api/v1/auth/switch-context`, Request Body, Response `2
Cohesion: 0.14
Nodes (13): 1. 🟨 Medium — نبود Content-Security-Policy روی SPA ادمین, 2. 🟨 Medium — وابستگی npm آسیب‌پذیر (lodash `_.template` code injection), 3. 🟦 Low — `APP_SECRET` واقعی commit‌شده در `.env.dev`, 4. 🟦 Low — فلگ‌های session cookie پین‌نشده, 5. ⬜ Info — پسورد sandbox درگاه ملت هارد‌کد, leadهای درایور که پس از بازرسی رد شدند, آنچه سالم بود (تأییدشده، یافته نیست), خلاصهٔ وضعیت (+5 more)
### Community 795 - "Community 795"
Cohesion: 0.43
Nodes (3): AppointmentEvent, AppointmentEventRepository, ManagerRegistry
### Community 796 - "Community 796"
Cohesion: 0.50
Nodes (4): Errors, POST `/api/v1/notification-mobile/verify`, Request Body, Response `200`
@@ -3609,6 +3583,10 @@ Nodes (4): Errors, POST `/api/v1/user/verify-code`, Request Body, Response `200`
Cohesion: 0.24
Nodes (9): ChartPoint, faNum, niceTicks(), projectTrend(), smoothPath(), TauriBarChart(), TauriLineChart(), real (+1 more)
### Community 804 - "Community 804"
Cohesion: 0.06
Nodes (7): AppointmentCreateReserveTest, AppointmentExpiryServiceTest, AppointmentUpdateTest, SmsWallet, AppLog, SecretaryAppointmentScopeTest, self
### Community 805 - "Community 805"
Cohesion: 0.31
Nodes (3): InventoryPackageRepository, InventoryPackage, ManagerRegistry
@@ -3621,6 +3599,10 @@ Nodes (15): بازطراحی صفحه Claims به داشبورد مدیریتی
Cohesion: 0.25
Nodes (8): Errors, GET `/api/v1/patient/{uuid}/payments`, GET `/api/v1/patient/{uuid}/wallet`, GET `/api/v1/patient/{uuid}/wallet/transactions`, PATCH `/api/v1/session/{uuid}` — پرداخت مراجعه از کیف پول, POST `/api/v1/patient/{uuid}/wallet/charge`, POST `/api/v1/patient/{uuid}/wallet/withdraw`, مالی بیمار (Financials: پرداخت / تراکنش / کیف‌پول)
### Community 809 - "Community 809"
Cohesion: 0.16
Nodes (3): LoggerInterface, RanginehProvider, ApiIrService
### Community 810 - "Community 810"
Cohesion: 0.15
Nodes (12): زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, ویرایش سرویس‌های مراجعه + ویرایش/حذف پرداخت + Audit Log مالی جامع, پروژه (+4 more)
@@ -3645,6 +3627,10 @@ Nodes (5): MockGateway, PaymentGatewayInterface, PaymentInitResult, PaymentRefun
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
@@ -3665,6 +3651,10 @@ Nodes (14): رفع کامل عملیات نوبت در حالت کلینیک (co
Cohesion: 0.50
Nodes (4): autoload, files, psr-4, App\\
### Community 832 - "Community 832"
Cohesion: 0.43
Nodes (3): InvoiceItemRepository, InvoiceItem, ManagerRegistry
### Community 833 - "Community 833"
Cohesion: 0.50
Nodes (4): extra, symfony, allow-contrib, require
@@ -3781,10 +3771,6 @@ Nodes (3): SpecialtyRepository, ManagerRegistry, Specialty
Cohesion: 0.33
Nodes (6): DELETE `/api/v1/patient/note/{uuid}`, Errors, GET `/api/v1/patient/{uuid}/notes`, PATCH `/api/v1/patient/note/{uuid}`, POST `/api/v1/patient/{uuid}/note`, یادداشت‌های بیمار (Notes)
### Community 877 - "Community 877"
Cohesion: 0.22
Nodes (3): AppException, SlotTakenException, RuntimeException
### Community 880 - "Community 880"
Cohesion: 0.25
Nodes (8): ثبت‌نام دکتر — از طریق نماینده, ثبت‌نام دکتر — از طریق کلینیک, ثبت‌نام دکتر — مستقل, ۱. معرفی محصول, ۱.۱ نقش‌های سیستم, ۱.۲ فلوهای عملیاتی اصلی, ۱.۳ پلن‌های اشتراک, ۱.۴ سیستم پیامک
@@ -3794,8 +3780,8 @@ Cohesion: 0.15
Nodes (12): زمینه, فایل‌های مرتبط, فرآیند ثبت و قطعی کردن نوبت (مودال پرداخت + پرونده), مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+4 more)
### Community 885 - "Community 885"
Cohesion: 0.50
Nodes (4): 38. 🟢 `GET` Unapproved comments, هدرهای اضافی, پارامترهای Query, پاسخ‌ها
Cohesion: 0.47
Nodes (3): SeedCategoriesCommand, InputInterface, OutputInterface
### Community 890 - "Community 890"
Cohesion: 0.40
@@ -3890,16 +3876,20 @@ Cohesion: 0.43
Nodes (4): AppointmentConfirmationService, Appointment, PatientSession, User
### Community 932 - "Community 932"
Cohesion: 0.40
Nodes (5): 31. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
Cohesion: 0.47
Nodes (3): SeedSmsMessageTemplatesCommand, InputInterface, OutputInterface
### Community 935 - "Community 935"
Cohesion: 0.40
Nodes (5): DELETE `/api/v1/patient/message/{uuid}`, Errors, GET `/api/v1/patient/{uuid}/messages`, POST `/api/v1/patient/{uuid}/message`, پیام‌های بیمار (Messages)
### Community 937 - "Community 937"
Cohesion: 0.38
Nodes (3): BackfillAppointmentSessionsCommand, InputInterface, OutputInterface
Cohesion: 0.53
Nodes (3): PaymentLog, PaymentLogRepository, ManagerRegistry
### Community 938 - "Community 938"
Cohesion: 0.40
Nodes (5): Errors, GET `/api/v1/appointment-settings/month-availability/{doctorUuid}`, Path Parameters, Query Parameters, Response `200`
### Community 939 - "Community 939"
Cohesion: 0.12
@@ -3929,54 +3919,18 @@ Nodes (4): ReportSuspectedDuplicatesStep, RepairOptions, RepairResult, SymfonySt
Cohesion: 0.25
Nodes (4): StripNameTitleStep, RepairOptions, RepairResult, SymfonyStyle
### Community 953 - "Community 953"
Cohesion: 0.50
Nodes (4): 39. 🟡 `PATCH` Comment confirmation, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 954 - "Community 954"
Cohesion: 0.50
Nodes (4): 44. 🟢 `GET` list comment, هدرهای اضافی, پارامترهای Query, پاسخ‌ها
### Community 955 - "Community 955"
Cohesion: 0.50
Nodes (4): 45. 🔵 `POST` post, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 956 - "Community 956"
Cohesion: 0.50
Nodes (4): 46. 🟡 `PATCH` patch, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 957 - "Community 957"
Cohesion: 0.38
Nodes (3): RepairAcceptedInvitationsCommand, InputInterface, OutputInterface
### Community 958 - "Community 958"
Cohesion: 0.40
Nodes (5): DELETE `/api/v1/patient/attachment/{uuid}`, Errors, GET `/api/v1/patient/{uuid}/attachments`, POST `/api/v1/patient/{uuid}/attachment`, ضمیمه‌های بیمار (Attachments)
### Community 960 - "Community 960"
Cohesion: 0.48
Nodes (3): SessionConsumableRepository, ManagerRegistry, SessionConsumable
### Community 962 - "Community 962"
Cohesion: 0.38
Nodes (3): CreateAdminCommand, InputInterface, OutputInterface
### Community 964 - "Community 964"
Cohesion: 0.38
Nodes (3): NormalizeScheduleFormatCommand, InputInterface, OutputInterface
### 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 969 - "Community 969"
Cohesion: 0.67
Nodes (3): 34. 🔵 `POST` image logo, هدرهای اضافی, پاسخ‌ها
### Community 970 - "Community 970"
Cohesion: 0.40
Nodes (5): 35. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 971 - "Community 971"
Cohesion: 0.28
Nodes (5): DoctorAppointmentFilterTest, AppointmentRepository, AppointmentExpiryService, Appointment, Doctor
@@ -3989,10 +3943,6 @@ Nodes (8): CalendarIcon(), CardIcon(), CardTickIcon(), ChevronDownIcon(), UserAd
Cohesion: 0.40
Nodes (5): ۲.۸ تنظیمات نوبت (Appointment Settings), ۲.۸.۱ برنامه هفتگی (Weekly Schedule), ۲.۸.۲ تعطیلات (Holidays), ۲.۸.۳ لغو تعطیل (Date Override), ۲.۸.۴ الگوریتم محاسبه اسلات‌های خالی
### Community 975 - "Community 975"
Cohesion: 0.38
Nodes (3): PurgeDoctorsCommand, InputInterface, OutputInterface
### Community 976 - "Community 976"
Cohesion: 0.50
Nodes (4): Errors, POST `/file/upload/clinic_pro/clinic/field_clinic_logo`, Request, Response `200`
@@ -4002,21 +3952,13 @@ 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
### Community 979 - "Community 979"
Cohesion: 0.67
Nodes (3): 42. 🔴 `DELETE` delete, هدرهای اضافی, پاسخ‌ها
Cohesion: 0.42
Nodes (4): UserActiveContextRepository, ManagerRegistry, User, UserActiveContext
### 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.53
Nodes (3): TaxRateHistoryRepository, ManagerRegistry, TaxRateHistory
### Community 982 - "Community 982"
Cohesion: 0.67
Nodes (3): Errors, POST `/api/v1/sms/send` — ⛔ غیرفعال (Deprecated), Response `422` (همیشه)
@@ -4037,18 +3979,10 @@ Nodes (4): GET /api/v1/categories/cities — شهرها, GET /api/v1/categories/
Cohesion: 0.33
Nodes (4): run(), RepairOptions, RepairResult, SymfonyStyle
### Community 989 - "Community 989"
Cohesion: 0.43
Nodes (3): CategoryImportController, JsonResponse, Request
### Community 990 - "Community 990"
Cohesion: 0.50
Nodes (4): ۲.۱۳ نظرات، لایک و امتیازدهی, ۲.۱۳.۱ نظر (Comment), ۲.۱۳.۲ لایک (Like), ۲.۱۳.۳ امتیاز (Rate)
### Community 997 - "Community 997"
Cohesion: 0.48
Nodes (3): SmsSettingsRepository, SmsSettings, ManagerRegistry
### Community 999 - "Community 999"
Cohesion: 0.40
Nodes (5): GET `/api/v1/admin/financial-breakdowns`, GET `/api/v1/admin/financial-summary`, GET `/api/v1/admin/settings/tax-history`, GET `/api/v1/admin/settlement/{uuid}`, موتور مالی نمایندگی
@@ -4065,10 +3999,6 @@ Nodes (6): `city` / `state` در پاسخ لیست, GET `/api/v1/doctors`, Query
Cohesion: 0.67
Nodes (3): GET `/api/v1/representation/{uuid}/dashboard/yearly`, Query Parameters, Response `200`
### Community 1005 - "Community 1005"
Cohesion: 0.40
Nodes (5): Errors, POST `/api/v1/appointment/{uuid}/confirm`, Request Body, Response `200`, What happens on the server
### Community 1007 - "Community 1007"
Cohesion: 0.40
Nodes (5): Errors, GET `/api/v1/clinic/my-doctor/{doctorUuid}`, Path Parameters, Response `200`, Schedule Fields Notes
@@ -4085,10 +4015,6 @@ Nodes (5): Errors, PATCH `/api/v1/clinic-pro/doctor-address/{id}`, Path Paramete
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 1012 - "Community 1012"
Cohesion: 0.40
Nodes (5): 62. 🟡 `PATCH` patch, Request Body, مثال Request, هدرهای اضافی, پاسخ‌ها
### Community 1013 - "Community 1013"
Cohesion: 0.40
Nodes (4): license, overrides, lodash, private
@@ -4161,33 +4087,25 @@ Nodes (3): GET `/api/v1/insurances`, Query Parameters, Response `200`
Cohesion: 0.67
Nodes (3): POST `/api/v1/admin/insurance/{id}/upload-logo`, Request, Response `200`
### Community 1035 - "Community 1035"
Cohesion: 0.67
Nodes (3): 33. 🔵 `POST` image_clinic, هدرهای اضافی, پاسخ‌ها
### Community 1036 - "Community 1036"
Cohesion: 0.67
Nodes (3): 43. 🟢 `GET` get, هدرهای اضافی, پاسخ‌ها
## Knowledge Gaps
- **5317 isolated node(s):** `PORT`, `ROLES`, `[cmd, ...argv]`, `positional`, `opts` (+5312 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **244 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **237 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 1032`, `Community 485`?**
_High betweenness centrality (0.116) - this node is a cross-community bridge._
- **Why does `SiteConfigRepository` connect `Community 451` to `Community 704`, `Community 485`, `Community 677`, `Community 169`, `Community 205`, `Community 15`, `Community 367`, `Community 881`, `Community 693`, `Community 759`, `Community 637`, `Community 254`?**
- **Why does `SiteConfigRepository` connect `Community 451` to `Community 704`, `Community 608`, `Community 485`, `Community 677`, `Community 169`, `Community 205`, `Community 15`, `Community 367`, `Community 881`, `Community 693`, `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 531`, `Community 534`, `Community 535`, `Community 538`, `Community 539`, `Community 541`, `Community 562`, `Community 565`, `Community 59`, `Community 574`, `Community 575`, `Community 583`, `Community 594`, `Community 82`, `Community 608`, `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 733`, `Community 743`, `Community 744`, `Community 748`, `Community 765`, `Community 775`, `Community 779`, `Community 784`, `Community 804`, `Community 823`, `Community 826`, `Community 828`, `Community 318`, `Community 832`, `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 445`, `Community 959`, `Community 451`, `Community 455`, `Community 968`, `Community 971`, `Community 978`, `Community 983`, `Community 480`, `Community 482`, `Community 483`, `Community 484`, `Community 486`, `Community 1003`, `Community 492`, `Community 1004`, `Community 494`, `Community 497`, `Community 1011`, `Community 1014`?**
- **Why does `ApiTestCase` connect `Community 86` to `Community 0`, `Community 531`, `Community 534`, `Community 535`, `Community 538`, `Community 539`, `Community 541`, `Community 562`, `Community 565`, `Community 574`, `Community 575`, `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 733`, `Community 230`, `Community 743`, `Community 744`, `Community 748`, `Community 765`, `Community 775`, `Community 779`, `Community 784`, `Community 791`, `Community 804`, `Community 300`, `Community 826`, `Community 828`, `Community 318`, `Community 837`, `Community 840`, `Community 851`, `Community 854`, `Community 856`, `Community 871`, `Community 877`, `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 953`, `Community 442`, `Community 954`, `Community 445`, `Community 959`, `Community 451`, `Community 455`, `Community 968`, `Community 971`, `Community 978`, `Community 983`, `Community 480`, `Community 482`, `Community 483`, `Community 484`, `Community 486`, `Community 1003`, `Community 492`, `Community 494`, `Community 497`?**
_High betweenness centrality (0.057) - 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._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.06392405063291139 - nodes in this community are weakly interconnected._
_Cohesion score 0.06073871409028728 - 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.0277750418595489 - 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._
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
+1 -1
View File
File diff suppressed because one or more lines are too long
+1311 -1291
View File
File diff suppressed because it is too large Load Diff
+95 -95
View File
@@ -1,11 +1,11 @@
{
"assets/admin/App.tsx": {
"mtime": 1784820906.7683442,
"mtime": 1784821343.1686423,
"ast_hash": "8d0f3c0273b7b5b645e5fddb8d7359ec",
"semantic_hash": ""
},
"assets/admin/components/FreeVisitPrice.tsx": {
"mtime": 1784819108.28825,
"mtime": 1784821343.1721354,
"ast_hash": "0e4b00b04d605f39a6a74ade776f09bc",
"semantic_hash": ""
},
@@ -15,7 +15,7 @@
"semantic_hash": ""
},
"assets/admin/components/TenantInsuranceContracts.tsx": {
"mtime": 1784818971.3570604,
"mtime": 1784821343.1728623,
"ast_hash": "f749f48fa81cad2af2b656cfc777b576",
"semantic_hash": ""
},
@@ -25,7 +25,7 @@
"semantic_hash": ""
},
"assets/admin/components/layout/Sidebar.tsx": {
"mtime": 1784820758.7049072,
"mtime": 1784821343.181366,
"ast_hash": "842a0b95d3969899ec84ceeda1af6989",
"semantic_hash": ""
},
@@ -170,7 +170,7 @@
"semantic_hash": ""
},
"assets/admin/pages/AppointmentsPage.tsx": {
"mtime": 1784819057.012107,
"mtime": 1784821343.1870828,
"ast_hash": "a9f89e0a2b6aafbf620d7ba3ecaafc8c",
"semantic_hash": ""
},
@@ -205,8 +205,8 @@
"semantic_hash": ""
},
"assets/admin/pages/ClinicServicesPage.tsx": {
"mtime": 1784818775.4846687,
"ast_hash": "a8d8bc582a52aeecec9ed57c8f18971f",
"mtime": 1784821680.0139093,
"ast_hash": "25c6fb619b9618aa7cc973ff9c0ef435",
"semantic_hash": ""
},
"assets/admin/pages/ClinicsPage.tsx": {
@@ -220,7 +220,7 @@
"semantic_hash": ""
},
"assets/admin/pages/DashboardPage.tsx": {
"mtime": 1784810356.259992,
"mtime": 1784821343.1891022,
"ast_hash": "514d2c563d20806769b54b786e4da121",
"semantic_hash": ""
},
@@ -265,12 +265,12 @@
"semantic_hash": ""
},
"assets/admin/pages/MyPatientsPage.tsx": {
"mtime": 1784819119.9482207,
"mtime": 1784821343.1907976,
"ast_hash": "42964eddc4a836d5105c22d90853b424",
"semantic_hash": ""
},
"assets/admin/pages/MySecretariesPage.tsx": {
"mtime": 1784818074.9083815,
"mtime": 1784821343.1913774,
"ast_hash": "d63189538fe1960e7c56a4c64a89dcbc",
"semantic_hash": ""
},
@@ -325,7 +325,7 @@
"semantic_hash": ""
},
"assets/admin/pages/SecretariesPage.tsx": {
"mtime": 1784818099.7768664,
"mtime": 1784821343.1948907,
"ast_hash": "e305335f8297f8b19c7e19005a3dc37f",
"semantic_hash": ""
},
@@ -355,12 +355,12 @@
"semantic_hash": ""
},
"assets/admin/pages/SmsWalletPage.tsx": {
"mtime": 1784818929.35685,
"mtime": 1784821343.2002063,
"ast_hash": "3c458b73d3fc54d51a9b2b6b264af20a",
"semantic_hash": ""
},
"assets/admin/pages/StaffPage.tsx": {
"mtime": 1784818918.4560888,
"mtime": 1784821343.203206,
"ast_hash": "fcf045b72a08c1d5157f59fe868590c5",
"semantic_hash": ""
},
@@ -390,7 +390,7 @@
"semantic_hash": ""
},
"assets/admin/types/index.ts": {
"mtime": 1784818062.8192828,
"mtime": 1784821343.205508,
"ast_hash": "3e204571b2ed5099839d2fefc424d49a",
"semantic_hash": ""
},
@@ -790,7 +790,7 @@
"semantic_hash": ""
},
"public/sw.js": {
"mtime": 1784802929.2984245,
"mtime": 1784821343.344032,
"ast_hash": "c449612287bd2a8852e3fececfc099d0",
"semantic_hash": ""
},
@@ -815,17 +815,17 @@
"semantic_hash": ""
},
"src/Appointment/Controller/AppointmentController.php": {
"mtime": 1784808041.6931024,
"mtime": 1784821343.3477147,
"ast_hash": "7c741d1e7b86d61b92e31f3ed41fb7c6",
"semantic_hash": ""
},
"src/Appointment/Controller/AppointmentSettingsController.php": {
"mtime": 1784814547.209769,
"mtime": 1784821343.3488946,
"ast_hash": "35fb35fee61047fa0b80b64a1d72ce79",
"semantic_hash": ""
},
"src/Appointment/Controller/MyAppointmentsController.php": {
"mtime": 1784816781.3221664,
"mtime": 1784821343.3494182,
"ast_hash": "6f44898dd5296d96d6e6170c7e40f97e",
"semantic_hash": ""
},
@@ -970,7 +970,7 @@
"semantic_hash": ""
},
"src/Billing/Controller/BillingController.php": {
"mtime": 1784808838.8976812,
"mtime": 1784821343.350729,
"ast_hash": "f5f39f4f82370d2b13dee2e6bab6491c",
"semantic_hash": ""
},
@@ -1010,7 +1010,7 @@
"semantic_hash": ""
},
"src/Billing/Repository/InvoiceRepository.php": {
"mtime": 1784808794.513476,
"mtime": 1784821343.3512733,
"ast_hash": "b81cf990eebd86508fe9774406edff20",
"semantic_hash": ""
},
@@ -1065,7 +1065,7 @@
"semantic_hash": ""
},
"src/Clinic/Controller/ClinicController.php": {
"mtime": 1784816718.957348,
"mtime": 1784821343.352233,
"ast_hash": "31c8c46921ea8bfeeb5a10adf96cd94d",
"semantic_hash": ""
},
@@ -1080,7 +1080,7 @@
"semantic_hash": ""
},
"src/ClinicInvitation/Controller/ClinicInvitationController.php": {
"mtime": 1784814752.198678,
"mtime": 1784821343.3547127,
"ast_hash": "4d3c2945f3307fbef09635a0b906afec",
"semantic_hash": ""
},
@@ -1100,8 +1100,8 @@
"semantic_hash": ""
},
"src/ClinicService/Controller/ClinicServiceController.php": {
"mtime": 1784820632.5114615,
"ast_hash": "36f0ea57dd223b4308c0569290eb1941",
"mtime": 1784821564.5455709,
"ast_hash": "004d44b61024c9257fe7e72441d70ebf",
"semantic_hash": ""
},
"src/ClinicService/Entity/ServiceItem.php": {
@@ -1210,7 +1210,7 @@
"semantic_hash": ""
},
"src/Insurance/Controller/InsuranceController.php": {
"mtime": 1784820722.018758,
"mtime": 1784821343.3568418,
"ast_hash": "3ac2dc9f55c2c9f76dea0fe10f57c1e8",
"semantic_hash": ""
},
@@ -1310,7 +1310,7 @@
"semantic_hash": ""
},
"src/Patient/Controller/PatientController.php": {
"mtime": 1784820724.082775,
"mtime": 1784821343.3579683,
"ast_hash": "c1e9e6806d5945e4e12c68cbdf4d975a",
"semantic_hash": ""
},
@@ -1345,12 +1345,12 @@
"semantic_hash": ""
},
"src/Patient/Service/PatientService.php": {
"mtime": 1784808015.9772892,
"mtime": 1784821343.3588803,
"ast_hash": "8a0702a10a10308d88fccb2fe0265a69",
"semantic_hash": ""
},
"src/Payment/Controller/PaymentController.php": {
"mtime": 1784820760.775805,
"mtime": 1784821343.3592927,
"ast_hash": "c53132ad9e846708b786b83bd60aec08",
"semantic_hash": ""
},
@@ -1470,7 +1470,7 @@
"semantic_hash": ""
},
"src/Secretary/Entity/DoctorSecretary.php": {
"mtime": 1784818053.6660721,
"mtime": 1784821343.360344,
"ast_hash": "2feb93424b554788b2d4977a68543a00",
"semantic_hash": ""
},
@@ -1595,7 +1595,7 @@
"semantic_hash": ""
},
"src/Sms/Controller/SmsWalletController.php": {
"mtime": 1784820752.1414826,
"mtime": 1784821343.362039,
"ast_hash": "12a4dba77c759e2dd8a1c3d324fd05dc",
"semantic_hash": ""
},
@@ -1715,7 +1715,7 @@
"semantic_hash": ""
},
"src/Staff/Controller/StaffController.php": {
"mtime": 1784820739.5248845,
"mtime": 1784821343.3627317,
"ast_hash": "c52ba5338854d64a1169f3cec188d532",
"semantic_hash": ""
},
@@ -1730,7 +1730,7 @@
"semantic_hash": ""
},
"src/Subscription/Controller/SubscriptionController.php": {
"mtime": 1784818134.9219277,
"mtime": 1784821343.3635273,
"ast_hash": "5f47f0bd02e812aa03e9bda5b67a1254",
"semantic_hash": ""
},
@@ -2335,7 +2335,7 @@
"semantic_hash": ""
},
"docs/api/appointment.md": {
"mtime": 1784817063.0786145,
"mtime": 1784821343.2064717,
"ast_hash": "3f40a151edeff4399a7b4f10f74b2c1e",
"semantic_hash": ""
},
@@ -2345,7 +2345,7 @@
"semantic_hash": ""
},
"docs/api/billing.md": {
"mtime": 1784808955.8717575,
"mtime": 1784821343.2071853,
"ast_hash": "ee2062e82a8e990c45634cae2f24ac54",
"semantic_hash": ""
},
@@ -2360,17 +2360,17 @@
"semantic_hash": ""
},
"docs/api/clinic-services.md": {
"mtime": 1784814014.668079,
"ast_hash": "8240217d07062ed2a14ad59960c8182d",
"mtime": 1784821794.349171,
"ast_hash": "8cfed413f7a56459b7e2c32604526fe1",
"semantic_hash": ""
},
"docs/api/clinic.md": {
"mtime": 1784821074.3873537,
"mtime": 1784821343.208268,
"ast_hash": "ee6da47a98f0eec4b2e88e5cea20d02b",
"semantic_hash": ""
},
"docs/api/dashboard.md": {
"mtime": 1784811852.99382,
"mtime": 1784821343.2086482,
"ast_hash": "f64cbf8096de2e2ec42ef47b4fad54db",
"semantic_hash": ""
},
@@ -2385,7 +2385,7 @@
"semantic_hash": ""
},
"docs/api/insurance.md": {
"mtime": 1784811895.6178923,
"mtime": 1784821343.2089336,
"ast_hash": "3e5289724b03d41042970c0bf9cd2400",
"semantic_hash": ""
},
@@ -2395,12 +2395,12 @@
"semantic_hash": ""
},
"docs/api/patient.md": {
"mtime": 1784811906.1779408,
"mtime": 1784821343.2102203,
"ast_hash": "a6f76f1dc99533fff9c9668c607a1bf9",
"semantic_hash": ""
},
"docs/api/payment.md": {
"mtime": 1784811914.093014,
"mtime": 1784821343.2117465,
"ast_hash": "90529736120a8df9da811f213040f45a",
"semantic_hash": ""
},
@@ -2415,7 +2415,7 @@
"semantic_hash": ""
},
"docs/api/secretary.md": {
"mtime": 1784818277.8539133,
"mtime": 1784821343.2123697,
"ast_hash": "107543bc5da240f7743ec03295f36b0b",
"semantic_hash": ""
},
@@ -3100,8 +3100,8 @@
"semantic_hash": ""
},
"tests/ClinicService/ServiceItemDeleteCleanupTest.php": {
"mtime": 1782728407.2085278,
"ast_hash": "2ab692fe132df5bb37346bf89afe041e",
"mtime": 1784821724.3295002,
"ast_hash": "a9c1c0b0e08aeb5e93a8df6d47e5037e",
"semantic_hash": ""
},
"tests/ClinicService/ServiceItemStaffOwnershipTest.php": {
@@ -4070,7 +4070,7 @@
"semantic_hash": ""
},
"assets/admin/components/layout/SettingsLayout.tsx": {
"mtime": 1784820887.4735112,
"mtime": 1784821343.1789737,
"ast_hash": "b2128c38fcc6f95f2248a93d8886ee8e",
"semantic_hash": ""
},
@@ -4090,7 +4090,7 @@
"semantic_hash": ""
},
"assets/admin/pages/SettingsMenuPage.tsx": {
"mtime": 1784817582.465638,
"mtime": 1784821343.197351,
"ast_hash": "b15141203bb0878012ce5cb52c696788",
"semantic_hash": ""
},
@@ -4135,7 +4135,7 @@
"semantic_hash": ""
},
"assets/admin/pages/AppointmentSettingsPage.tsx": {
"mtime": 1784819190.170087,
"mtime": 1784821343.1855252,
"ast_hash": "b3c58c3e613c5d9ba72c2ed2e8078bbf",
"semantic_hash": ""
},
@@ -4145,7 +4145,7 @@
"semantic_hash": ""
},
"assets/admin/pages/TagsSettingsPage.tsx": {
"mtime": 1784818941.8552938,
"mtime": 1784821343.2037196,
"ast_hash": "c7cd2bf0e0014f68abd2e1e74373949b",
"semantic_hash": ""
},
@@ -4155,7 +4155,7 @@
"semantic_hash": ""
},
"src/Tag/Controller/TenantTagController.php": {
"mtime": 1784820770.0772424,
"mtime": 1784821343.3639195,
"ast_hash": "8e2a136ddcf21ff6c29cdf465a0740cc",
"semantic_hash": ""
},
@@ -4195,7 +4195,7 @@
"semantic_hash": ""
},
"assets/admin/pages/PatientsListPage.tsx": {
"mtime": 1784819031.369682,
"mtime": 1784821343.1941292,
"ast_hash": "a0ff14a918dd830f79916733c5d65c77",
"semantic_hash": ""
},
@@ -4220,7 +4220,7 @@
"semantic_hash": ""
},
"assets/admin/pages/PatientDetailPage.tsx": {
"mtime": 1784819263.9628348,
"mtime": 1784821343.1928394,
"ast_hash": "15d1514cbf2b0e972a36c3b78d80e869",
"semantic_hash": ""
},
@@ -4435,7 +4435,7 @@
"semantic_hash": ""
},
"assets/admin/components/layout/PurchaseSubscriptionSidebar.tsx": {
"mtime": 1784820871.1188903,
"mtime": 1784821343.1784608,
"ast_hash": "89672bfe341cb2c0286376164912849d",
"semantic_hash": ""
},
@@ -4455,7 +4455,7 @@
"semantic_hash": ""
},
"assets/admin/hooks/useMyPayments.ts": {
"mtime": 1784808653.1351082,
"mtime": 1784821343.1833482,
"ast_hash": "8d468496e76cbabcfde29754de60f8e0",
"semantic_hash": ""
},
@@ -4480,7 +4480,7 @@
"semantic_hash": ""
},
"tests/Billing/PatientPaymentsTest.php": {
"mtime": 1784808879.26677,
"mtime": 1784821343.3658855,
"ast_hash": "4314df156d37d50bb87730f080fee1b8",
"semantic_hash": ""
},
@@ -4570,7 +4570,7 @@
"semantic_hash": ""
},
"src/PaymentMethod/Controller/PaymentMethodController.php": {
"mtime": 1784820771.3861446,
"mtime": 1784821343.3599799,
"ast_hash": "19a1f6c62c501271cf18f00c100751cf",
"semantic_hash": ""
},
@@ -4600,17 +4600,17 @@
"semantic_hash": ""
},
"tests/PaymentMethod/PaymentMethodTest.php": {
"mtime": 1784811712.7693176,
"mtime": 1784821343.3665361,
"ast_hash": "125a940ccb141b717330bea973d333c3",
"semantic_hash": ""
},
"docs/api/payment-method.md": {
"mtime": 1784811887.6845953,
"mtime": 1784821343.2112818,
"ast_hash": "dcdf7489d568aa4f1a1e4123b7865d94",
"semantic_hash": ""
},
"assets/admin/components/layout/PurchaseSubscriptionSidebar.test.tsx": {
"mtime": 1784817674.8077278,
"mtime": 1784821343.1778643,
"ast_hash": "f35939a39769ec0596ce5a3f40a970c8",
"semantic_hash": ""
},
@@ -4665,12 +4665,12 @@
"semantic_hash": ""
},
"assets/admin/components/inventory/InventoryActionsMenu.tsx": {
"mtime": 1784819247.0724738,
"mtime": 1784821343.176019,
"ast_hash": "af6c860ffed0859b0e17246e07042481",
"semantic_hash": ""
},
"assets/admin/components/inventory/InventoryItemsTable.tsx": {
"mtime": 1784819271.005821,
"mtime": 1784821343.176776,
"ast_hash": "9a60db2ed915f49bd3eb41a3292d8f7b",
"semantic_hash": ""
},
@@ -4685,7 +4685,7 @@
"semantic_hash": ""
},
"assets/admin/components/inventory/PackagesView.tsx": {
"mtime": 1784819308.0390046,
"mtime": 1784821343.177429,
"ast_hash": "7acc8459b016a3ebef84b822920bea81",
"semantic_hash": ""
},
@@ -4700,7 +4700,7 @@
"semantic_hash": ""
},
"assets/admin/pages/InventoryPage.tsx": {
"mtime": 1784818915.1118293,
"mtime": 1784821343.1897728,
"ast_hash": "f34ef5a0ca16a324c2e6fa3634a9541b",
"semantic_hash": ""
},
@@ -4710,7 +4710,7 @@
"semantic_hash": ""
},
"src/Inventory/Controller/InventoryController.php": {
"mtime": 1784820752.2898428,
"mtime": 1784821343.3573346,
"ast_hash": "6182877da8b17933af9e0414119ae524",
"semantic_hash": ""
},
@@ -4750,7 +4750,7 @@
"semantic_hash": ""
},
"docs/api/inventory.md": {
"mtime": 1784811879.4621527,
"mtime": 1784821343.2096827,
"ast_hash": "2588228ad20270c99af912f71803951c",
"semantic_hash": ""
},
@@ -4770,7 +4770,7 @@
"semantic_hash": ""
},
"assets/admin/components/appointments/TurnsTable.tsx": {
"mtime": 1784819048.2593114,
"mtime": 1784821343.1748266,
"ast_hash": "a590481d1490c17831efd1dfdf399beb",
"semantic_hash": ""
},
@@ -4800,7 +4800,7 @@
"semantic_hash": ""
},
"assets/admin/components/layout/Sidebar.test.tsx": {
"mtime": 1784821020.6576161,
"mtime": 1784821343.1796827,
"ast_hash": "011aa185c3d0d54f526dad9c649d5d2c",
"semantic_hash": ""
},
@@ -4890,7 +4890,7 @@
"semantic_hash": ""
},
"assets/admin/pages/AppointmentBookingModal.test.tsx": {
"mtime": 1784807195.759872,
"mtime": 1784821343.1849213,
"ast_hash": "640879bdd9ad142e72de387a07b65f40",
"semantic_hash": ""
},
@@ -4915,7 +4915,7 @@
"semantic_hash": ""
},
"tests/Appointment/PatientLookupTest.php": {
"mtime": 1784806722.0397148,
"mtime": 1784821343.3655047,
"ast_hash": "e91d8e7484dd15d1c7a9f16b7638956a",
"semantic_hash": ""
},
@@ -5090,7 +5090,7 @@
"semantic_hash": ""
},
"src/Patient/Entity/SessionPayment.php": {
"mtime": 1784808002.0035663,
"mtime": 1784821343.3583877,
"ast_hash": "4a57cb8b10b0dd24d3f9970613d4e07e",
"semantic_hash": ""
},
@@ -5175,12 +5175,12 @@
"semantic_hash": ""
},
"assets/admin/components/ClinicDoctorsManager.tsx": {
"mtime": 1784818979.8849618,
"mtime": 1784821343.1692798,
"ast_hash": "1473db773ea6108f8a1a667359f31986",
"semantic_hash": ""
},
"assets/admin/components/DiscountTab.tsx": {
"mtime": 1784818948.3349864,
"mtime": 1784821343.171022,
"ast_hash": "9eeaa17c76357955c936a0661ed03918",
"semantic_hash": ""
},
@@ -5215,7 +5215,7 @@
"semantic_hash": ""
},
"assets/admin/components/ui/DoctorPermissionsModal.tsx": {
"mtime": 1784820037.6278641,
"mtime": 1784821343.1819751,
"ast_hash": "c574415ca0ca55d8adc828c9e383da0a",
"semantic_hash": ""
},
@@ -5235,12 +5235,12 @@
"semantic_hash": ""
},
"assets/admin/pages/ClinicAppointmentSettingsPage.tsx": {
"mtime": 1784819159.2534611,
"mtime": 1784821343.1874535,
"ast_hash": "5b62fd082b66da536e493a18942e9fba",
"semantic_hash": ""
},
"assets/admin/pages/ClinicDoctorsPage.tsx": {
"mtime": 1784818938.5332887,
"mtime": 1784821343.1876826,
"ast_hash": "829e47fa88645e739a63d1ec703dc2a5",
"semantic_hash": ""
},
@@ -5265,7 +5265,7 @@
"semantic_hash": ""
},
"assets/admin/pages/ServiceDetailPage.tsx": {
"mtime": 1784818968.382702,
"mtime": 1784821343.1968215,
"ast_hash": "3138ab42ae436d432130a4e7a58104d8",
"semantic_hash": ""
},
@@ -5340,12 +5340,12 @@
"semantic_hash": ""
},
"src/Clinic/Controller/ClinicDoctorPermissionController.php": {
"mtime": 1784814685.8756745,
"mtime": 1784821343.3530936,
"ast_hash": "52bb8e26f0112b73e817d9fdd7008c34",
"semantic_hash": ""
},
"src/Clinic/Entity/ClinicDoctorPermission.php": {
"mtime": 1784820018.6469827,
"mtime": 1784821343.3538551,
"ast_hash": "7274cedd5f2d8a781b2777cd9889f4a9",
"semantic_hash": ""
},
@@ -5385,7 +5385,7 @@
"semantic_hash": ""
},
"src/Discount/Controller/DiscountController.php": {
"mtime": 1784820757.511677,
"mtime": 1784821343.3561866,
"ast_hash": "df12fc422a347f020f6825135635ae08",
"semantic_hash": ""
},
@@ -5620,7 +5620,7 @@
"semantic_hash": ""
},
"assets/admin/components/appointments/ConfirmAppointmentModal.tsx": {
"mtime": 1784808232.4621327,
"mtime": 1784821343.1742027,
"ast_hash": "2033a4dd1eae8f4d84b567fcff5ea73d",
"semantic_hash": ""
},
@@ -5660,7 +5660,7 @@
"semantic_hash": ""
},
"src/Appointment/Service/AppointmentConfirmationService.php": {
"mtime": 1784808027.1609445,
"mtime": 1784821343.350243,
"ast_hash": "d9c81dffdb569ef4b2b096037ece006d",
"semantic_hash": ""
},
@@ -5685,7 +5685,7 @@
"semantic_hash": ""
},
"tests/Appointment/AppointmentConfirmFlowTest.php": {
"mtime": 1784808338.3464715,
"mtime": 1784821343.3650222,
"ast_hash": "c2387464848d205b8fc87450015c4d85",
"semantic_hash": ""
},
@@ -5825,7 +5825,7 @@
"semantic_hash": ""
},
"assets/admin/components/appointments/ConfirmAppointmentModal.test.tsx": {
"mtime": 1784808299.6069503,
"mtime": 1784821343.173502,
"ast_hash": "f87b3d9bbf89dd5f0911d6472a454d9e",
"semantic_hash": ""
},
@@ -5955,7 +5955,7 @@
"semantic_hash": ""
},
"src/Shared/EventSubscriber/AdminCspSubscriber.php": {
"mtime": 1784806088.6016517,
"mtime": 1784821343.3612425,
"ast_hash": "2616bb5ec5d87d1c98b5564cc6a695f1",
"semantic_hash": ""
},
@@ -6025,7 +6025,7 @@
"semantic_hash": ""
},
"tests/Shared/AdminCspSubscriberTest.php": {
"mtime": 1784806088.6021926,
"mtime": 1784821343.3671227,
"ast_hash": "3ddd34bc065d307c664d3e5142b754e0",
"semantic_hash": ""
},
@@ -6075,7 +6075,7 @@
"semantic_hash": ""
},
"docs/security/AUDIT-2026-07-19.md": {
"mtime": 1784806088.5996838,
"mtime": 1784821343.2203355,
"ast_hash": "408d4d454c9bba340a6b3cbdc2b52293",
"semantic_hash": ""
},
@@ -6120,52 +6120,52 @@
"semantic_hash": ""
},
"seed_testdata.php": {
"mtime": 1784801102.5859623,
"mtime": 1784821343.3452199,
"ast_hash": "a04969acb8b76ebb4d3452cbf804f0a3",
"semantic_hash": ""
},
"migrations/Version20260723120122.php": {
"mtime": 1784808111.6212187,
"mtime": 1784821343.3432229,
"ast_hash": "5cbc25ed3869790cdf5fc594e21ea3d6",
"semantic_hash": ""
},
"assets/admin/pages/SecretaryDashboard.test.tsx": {
"mtime": 1784811555.9621842,
"mtime": 1784821343.196012,
"ast_hash": "055ef657771aebbab88291d41ead4f2a",
"semantic_hash": ""
},
"src/Secretary/Security/SecretaryAccessChecker.php": {
"mtime": 1784816511.515135,
"mtime": 1784821343.3608994,
"ast_hash": "66866ad47097640f70915853ca80bdf2",
"semantic_hash": ""
},
"tests/Secretary/SecretaryResourceEnforcementTest.php": {
"mtime": 1784818220.5879743,
"mtime": 1784821343.3668375,
"ast_hash": "dc8e106bbae91cb32fec1e90d5ee0ad5",
"semantic_hash": ""
},
".claude/prompt/secretary-permissions-coverage-and-panel-enforcement.md": {
"mtime": 1784809736.237233,
"mtime": 1784821343.1671631,
"ast_hash": "6356cd741205dd4cee0bee60cbde44fc",
"semantic_hash": ""
},
".claude/prompt/secretary-permissions-full-coverage-phase2.md": {
"mtime": 1784812825.5404992,
"mtime": 1784821343.167984,
"ast_hash": "2601cc7f4380fe482bbe64747b7077de",
"semantic_hash": ""
},
"src/Clinic/Security/ClinicDoctorAccessChecker.php": {
"mtime": 1784820581.2449746,
"mtime": 1784821343.3542557,
"ast_hash": "b022a7392d041b1d68251d9431e0ae6b",
"semantic_hash": ""
},
"tests/Clinic/ClinicDoctorPermissionEnforcementTest.php": {
"mtime": 1784820969.8948057,
"mtime": 1784821343.366051,
"ast_hash": "de189a3336a708390f91e8d367346540",
"semantic_hash": ""
},
".claude/prompt/clinic-doctor-permissions-full-coverage-and-enforcement.md": {
"mtime": 1784819813.5703921,
"mtime": 1784821343.166428,
"ast_hash": "8559d93c94f2ac1823dbe12719f91a49",
"semantic_hash": ""
}