This website requires JavaScript.
2459625c41
feat(tenant): implement tenant filter scope to manage cross-tenant data visibility
main
hamed
2026-08-10 16:22:00 +03:30
ee2682e222
feat(landing): update meta titles for landing pages and enhance FAQ section layout
hamed
2026-08-10 15:01:40 +03:30
68b8b05630
feat: add landing page templates and registration modal
hamed
2026-08-10 14:38:27 +03:30
231ce793bc
Add user guides for clinic management roles in Persian
hamed
2026-08-10 14:10:26 +03:30
bb2dbc3371
fix(appointment): ensure appointment details are always fetched from the server to avoid incorrect pricing
hamed
2026-08-10 12:21:28 +03:30
7073377122
feat(billing): add command and tests for backfilling missing invoices for paid sessions
hamed
2026-08-10 12:08:58 +03:30
3365a0427e
feat: implement useOverlayDismiss hook for consistent modal dismissal behavior
hamed
2026-08-10 11:27:16 +03:30
8a18457751
feat(billing): ensure finalized invoice for confirmed appointments with payments
hamed
2026-08-10 11:10:37 +03:30
505ab412a3
feat(appointment): add percentage shortcuts for patient share in payment rows
hamed
2026-08-10 10:38:56 +03:30
a8699065b8
fix(tour): adjust close button positioning for driver popover in RTL layout
hamed
2026-08-10 10:30:46 +03:30
ecdefa3c24
feat(tour): add onboarding tours for various admin pages
hamed
2026-08-10 10:10:20 +03:30
20c8eaaad9
feat: add TourProgressController and related entities for user tour progress tracking
hamed
2026-08-10 09:34:14 +03:30
7716b40f6a
feat: implement tax calculations for subscription and SMS wallet payments
hamed
2026-08-09 16:51:22 +03:30
2471c90cbb
feat(payment): unify payment callback endpoint for all gateways and types
hamed
2026-08-09 16:02:48 +03:30
a6a965a2aa
feat: add admin subscription granting feature
dev
hamed
2026-08-09 13:43:30 +03:30
60ccd5cc1d
feat: implement OTP login flow and enhance role-based access control
hamed
2026-08-09 12:41:11 +03:30
cfeb447645
feat: add PublicResourceBookingController and PublicResourceBookingService for public booking functionality
hamed
2026-08-09 10:45:51 +03:30
cd793489ef
Add AST cache for BlogIdentifierResolutionTest.php with detailed node and edge relationships
hamed
2026-08-09 09:14:44 +03:30
3ffab2bbd0
feat(stepper): implement multi-step wizard for appointment confirmation process
hamed
2026-08-09 09:12:00 +03:30
948f59827a
feat(appointments): implement multi-step wizard for appointment booking modal
hamed
2026-08-09 08:53:55 +03:30
b49abee52f
refactor: update pricing input handling to use PriceInput component
hamed
2026-08-09 08:38:23 +03:30
e48ab9a974
feat(settings): implement grouped menu structure and update related components
hamed
2026-08-09 07:56:48 +03:30
89a1428ca0
feat(tests): update topic slug generation for blog identifier resolution tests
hamed
2026-08-09 07:22:31 +03:30
dcf9285467
feat(blog): enhance blog identifier resolution to support multiple identifiers and improve URL handling
hamed
2026-08-09 07:14:16 +03:30
f6ef086589
chore(graph): rebuild after multi-specialty doctor search
hamed and Claude Opus 5
2026-08-08 16:45:03 +03:30
2da5b5188c
feat(doctors): search every specialty a doctor has, and expose the tree
hamed and Claude Opus 5
2026-08-08 16:44:32 +03:30
08a344c99d
chore(graph): rebuild after representation edit policy
hamed and Claude Opus 5
2026-08-08 15:51:01 +03:30
fb1cb20c11
feat(representation): let registering reps edit their doctors and clinics
hamed and Claude Opus 5
2026-08-08 15:50:17 +03:30
d74a351e5a
feat: enhance search functionality to include parent names and related fields across categories
hamed
2026-08-08 14:57:36 +03:30
35181cd715
feat: implement OptionsInput component for handling select field options
hamed
2026-08-08 14:33:49 +03:30
3862a91fd1
Refactor code structure for improved readability and maintainability
hamed
2026-08-08 14:25:27 +03:30
47323daa27
feat: add RichTextEditor component for rich text editing in articles
hamed
2026-08-08 11:40:17 +03:30
934405c42d
feat: Implement permission gate for appointment and billing controllers
hamed
2026-08-08 10:27:13 +03:30
c452150a83
refactor: remove ResourceBookingPage and related components; update references in AppointmentsPage and ScheduleSection
hamed
2026-08-08 07:19:48 +03:30
b699476305
feat(appointment): derive service section from service item when missing in appointment
hamed
2026-08-08 07:14:40 +03:30
da07e3ad9c
fix(tests): reset EntityManager in ApiLeastPrivilegeTest to prevent stale references
hamed
2026-08-08 06:47:31 +03:30
6876135a53
feat: add BlogBodySanitizer for HTML sanitization on article save
hamed
2026-08-07 21:13:38 +03:30
a4a24c51af
refactor(guidelines): update guidelines and add mandatory Grill section for all skills
hamed
2026-08-07 20:03:49 +03:30
9b9a7500e2
chore(graph): rebuild after secretary modal split
hamed
2026-08-07 19:55:55 +03:30
7c3407b0b3
refactor(admin): split the secretary form from its permissions into two modals
hamed and Claude Opus 5
2026-08-07 19:55:32 +03:30
a6eee1ce9d
chore(graph): rebuild after clinic-doctor read gate symmetry
hamed
2026-08-07 19:31:14 +03:30
d6de746938
fix(permissions): apply the patient and tag read gates to invited clinic doctors
hamed and Claude Opus 5
2026-08-07 19:30:52 +03:30
6a6852379d
chore(graph): rebuild after addresses permission fix
hamed
2026-08-07 19:16:26 +03:30
294ca19a46
fix(permissions): make the addresses resource real instead of decorative
hamed and Claude Opus 5
2026-08-07 19:16:02 +03:30
be5cdf8af6
chore(graph): rebuild after service catalog permission gate
hamed
2026-08-07 18:52:47 +03:30
073a68bcc2
fix(admin): split the catalog page buttons onto per-action services permissions
hamed and Claude Opus 5
2026-08-07 18:52:25 +03:30
52c45443c5
fix(security): gate every ServiceCatalogController route on the services permission
hamed and Claude Opus 5
2026-08-07 18:46:16 +03:30
be93e15bad
chore(graph): rebuild after subscription doc correction
hamed
2026-08-07 18:39:05 +03:30
1d10f8c907
docs(api): correct the subscription/my enforcement claim
hamed and Claude Opus 5
2026-08-07 18:38:36 +03:30
ccd869e442
chore(graph): rebuild after permission docs
hamed
2026-08-07 18:21:11 +03:30
0a22cf98fb
docs(api): document the permission registry and correct two enforcement claims
hamed and Claude Opus 5
2026-08-07 18:20:49 +03:30
a0fd85d910
chore(graph): rebuild after dynamic permission UIs
hamed
2026-08-07 18:11:25 +03:30
ddd5f8f75a
feat(permissions): render both permission forms from the catalog, fix borrowed gates
hamed and Claude Opus 5
2026-08-07 18:11:05 +03:30
dc40651308
chore(graph): rebuild after permission catalog endpoint
hamed
2026-08-07 17:40:11 +03:30
5211b34d0e
feat(permissions): expose the registry over GET /api/v1/permission-catalog
hamed and Claude Opus 5
2026-08-07 17:39:45 +03:30
aff7b7fd4a
chore(graph): rebuild after permission registry
hamed
2026-08-07 17:35:08 +03:30
1d1efd7a85
feat(permissions): single registry for secretary and clinic-doctor permissions
hamed and Claude Opus 5
2026-08-07 17:32:28 +03:30
0360a5e46f
Refactor code structure for improved readability and maintainability
hamed
2026-08-07 17:16:10 +03:30
01100b90ad
chore(graph): rebuild after collapsible session cards
hamed and Claude Opus 5
2026-08-07 17:12:38 +03:30
7a6bc313d2
refactor(admin): collapse session cards in the course detail
hamed and Claude Opus 5
2026-08-07 17:12:28 +03:30
bc8003562a
chore(graph): rebuild after treatment card view
hamed and Claude Opus 5
2026-08-07 17:05:09 +03:30
f61b79b67e
refactor(admin): course cards with a detail view, and fill the banner's next date
hamed and Claude Opus 5
2026-08-07 17:04:55 +03:30
8672608696
feat(admin): let the booking date be changed inside the modal
hamed and Claude Opus 5
2026-08-07 16:57:17 +03:30
e385056f09
chore(graph): rebuild after treatment tab rename and prefill
hamed and Claude Opus 5
2026-08-07 16:43:49 +03:30
288919339e
feat(admin): name the tab for what it shows, prefill the patient, paginate and search
hamed and Claude Opus 5
2026-08-07 16:43:34 +03:30
02fdfd13cb
chore(graph): rebuild after patient treatment plan tab
hamed and Claude Opus 5
2026-08-07 16:28:27 +03:30
c4099f0f63
feat(admin): default the booking staff from the service's protocol, and call it پرسنل
hamed and Claude Opus 5
2026-08-07 16:28:13 +03:30
de52d668c0
feat(admin): 'next appointments' tab in the patient file
hamed and Claude Opus 5
2026-08-07 16:21:31 +03:30
fc50ac4b3b
feat(treatment): endpoint for a course's calendar and its recorded work
hamed and Claude Opus 5
2026-08-07 16:12:55 +03:30
50d82279d6
feat(treatment): project a whole course's calendar without storing it
hamed and Claude Opus 5
2026-08-07 16:08:19 +03:30
250e0b0813
feat(treatment): filter treatment cases by patient record
hamed and Claude Opus 5
2026-08-07 16:05:35 +03:30
fbaf98a1f5
chore(graph): rebuild after explicit session booking
hamed and Claude Opus 5
2026-08-07 15:44:36 +03:30
c7a3b88b32
feat(treatment): bind an appointment to a chosen session, and free it on cancel
hamed and Claude Opus 5
2026-08-07 15:44:22 +03:30
d857242145
chore(graph): rebuild after treatment cases table view
hamed and Claude Opus 5
2026-08-07 15:13:42 +03:30
d3f7812d15
feat(admin): table/card views for treatment cases, matching the patients list
hamed and Claude Opus 5
2026-08-07 15:13:27 +03:30
9cabb28355
chore(graph): rebuild after per-case operator assignment
hamed and Claude Opus 5
2026-08-07 14:55:16 +03:30
b78f7311cf
feat(treatment): per-case operators, shown on the list and searchable
hamed and Claude Opus 5
2026-08-07 14:55:01 +03:30
12c0d57e1a
chore(graph): rebuild after removing services from the staff dashboard
hamed and Claude Opus 5
2026-08-07 14:38:35 +03:30
e43e8ec93e
refactor(dashboard): drop the services list from the staff dashboard
hamed and Claude Opus 5
2026-08-07 14:38:21 +03:30
93c11139fd
chore(graph): rebuild after area skip note and reopen
hamed and Claude Opus 5
2026-08-07 14:28:48 +03:30
a182b05e1f
feat(treatment): skip reasons and reopening for session areas
hamed and Claude Opus 5
2026-08-07 14:28:30 +03:30
a6180bc7e7
chore(graph): rebuild after staff dashboard fix
hamed and Claude Opus 5
2026-08-07 14:16:15 +03:30
5b3e80f92a
fix(dashboard): make the staff dashboard show the operator's actual work
hamed and Claude Opus 5
2026-08-07 14:16:00 +03:30
384ea7b180
chore(graph): rebuild after treatment case date filter
hamed and Claude Opus 5
2026-08-07 13:57:52 +03:30
73963020e2
feat(treatment): date-range filter on treatment cases, and time on the start stamp
hamed and Claude Opus 5
2026-08-07 13:57:14 +03:30
2bb76258f6
chore(graph): rebuild after treatment case search and edit
hamed and Claude Opus 5
2026-08-07 13:49:16 +03:30
952e09bd6a
feat(treatment): search and edit for treatment cases
hamed and Claude Opus 5
2026-08-07 13:48:57 +03:30
00349cdb44
chore(graph): rebuild after session device read-only
hamed and Claude Opus 5
2026-08-07 13:00:44 +03:30
cc2e630c40
refactor(admin): stop asking the operator to re-pick the session's device
hamed and Claude Opus 5
2026-08-07 13:00:29 +03:30
072e10d0ba
chore(graph): rebuild after staff sessions page redesign
hamed and Claude Opus 5
2026-08-07 12:51:44 +03:30
8875b8c64a
refactor(admin): rebuild the staff sessions page around the operator's question
hamed and Claude Opus 5
2026-08-07 12:51:26 +03:30
1366a7f15c
chore(graph): rebuild after staff queue and operator picker
hamed and Claude Opus 5
2026-08-07 12:39:49 +03:30
251b45d807
feat(admin): let the secretary pre-assign an operator when booking
hamed and Claude Opus 5
2026-08-07 12:39:35 +03:30
38ea477429
fix(treatment): make the staff panel a queue instead of an assignment list
hamed and Claude Opus 5
2026-08-07 12:34:01 +03:30
f5902eeeeb
chore(graph): rebuild after treatment case confirm fix
hamed and Claude Opus 5
2026-08-07 12:25:01 +03:30
a331aab2b8
fix(treatment): open the treatment case when confirming from the panel
hamed and Claude Opus 5
2026-08-07 12:24:29 +03:30
b437390e06
chore(graph): rebuild after appointment modal redesign
hamed and Claude Opus 5
2026-08-07 12:08:48 +03:30
103d913cd0
refactor(admin): restructure the new-appointment modal around its real steps
hamed and Claude Opus 5
2026-08-07 12:08:25 +03:30
1f4f7e6927
refactor(admin): make the treatment plan tab usable and reversible
hamed and Claude Opus 5
2026-08-07 11:29:09 +03:30
a63de2a52c
fix(treatment): let the operator actually record an area
hamed and Claude Opus 5
2026-08-07 11:08:48 +03:30