Commit Graph
91 Commits
Author SHA1 Message Date
hamed e95c5c12d1 feat: update UI components to use CSS variables for dark mode compatibility 2026-06-15 14:50:45 +03:30
hamed df7a784701 feat: implement realistic data seeding for doctors, clinics, and secretaries
- Added seed_realistic_data.php to clean existing data and populate the database with realistic entries for doctors, clinics, and secretaries.
- Created a structured approach to generate 100 doctors per city with diverse specialties and services.
- Implemented database cleanup routines to ensure a fresh start for data seeding.
- Enhanced the DoctorSecretaryRepository with improved comments for clarity.
2026-06-15 14:18:25 +03:30
hamed 68dfe613a2 feat(payment): add test mode check for payment callback IP validation 2026-06-15 13:17:28 +03:30
hamed 5fd45b429e feat(subscription): include amount_rials in subscription payment mutation 2026-06-15 13:02:06 +03:30
hamed 3763c83471 feat(payment): refactor payment configuration retrieval into a custom hook 2026-06-15 12:56:43 +03:30
hamed d13d8436ab feat(patient): add search user functionality by mobile number 2026-06-15 12:52:45 +03:30
hamed 95f5918118 feat(secretary): enhance secretary management with name input and toggle activation feature 2026-06-15 12:23:07 +03:30
hamed fa6656df48 feat(subscription): implement feature gating for subscription-based access in admin panel 2026-06-15 12:00:36 +03:30
hamed 3d33cf09b8 feat(auth): enhance access control in PrivateRoute and display error message in LoginPage 2026-06-15 11:41:52 +03:30
hamed 8c0b3d8282 feat(payment): add endpoint for payment configuration and update UI for test mode 2026-06-15 11:35:23 +03:30
hamed 5f5b0fa548 fix: update permissions structure for secretary API interactions 2026-06-15 11:25:14 +03:30
hamed 4bf381ac94 feat(secretary): implement scope separation for secretaries in clinics and personal practices
- Added `owner_type` and `clinic_id` fields to `DoctorSecretary` entity to distinguish between clinic and personal practice relationships.
- Updated repository methods to be scope-aware, allowing for specific queries based on the context of the secretary's relationship (clinic or doctor).
- Modified `SecretaryController` to handle secretary creation with appropriate scope based on the current user's role.
- Enhanced `AuthController` to build contexts that reflect the scope of the secretary's access.
- Updated `DashboardController` and `PatientController` to respect the new scope logic when retrieving data.
- Created migration to update the database schema accordingly, dropping the old unique constraint and adding the new fields and constraints.
2026-06-15 11:19:37 +03:30
hamed 5cdcec23a9 feat: enhance staff management and payment gateway features
- Fix national code handling in staff creation and updates to support Persian digits.
- Update ClinicStaff entity to allow longer national codes (up to 15 characters).
- Implement support for clinic secretaries in SecretaryController, allowing creation without a doctor UUID.
- Add a new endpoint to retrieve doctors associated with a clinic for secretary management.
- Improve appointment management by ensuring doctors are selectable even when no appointments exist.
- Extend PatientController to allow secretaries to create patient records if they have the appropriate permissions.
- Introduce a PriceInput component for better price formatting in forms, supporting Persian digits.
- Add a MockGateway for testing payment processes without real transactions.
- Enhance SMS settings management with an approval flow for post-visit text messages, including new fields for pending text and status.
- Update migrations to reflect changes in database schema for national codes and SMS settings.
2026-06-15 11:03:56 +03:30
hamed 55f646e2d4 feat: redesign StaffPage with KPI bar, improved table layout, and enhanced form fields 2026-06-14 23:36:37 +03:30
hamedandClaude Sonnet 4.6 5be63a23b6 feat: redesign SubscriptionPage with improved UI/UX
- Active subscription card: colored gradient bg, icon, progress bar, expiry warning badge
- Trial banner: shown when no subscription and trial not used yet
- Plan cards: icon header, feature checklist (✓/✗), per-period buy buttons inline
- Free plan card shows "شما اکنون در این پنل هستید" when current
- Payment modal: order summary card + gateway selector with styled radio buttons
- Loading skeleton for plan cards
- Footer with trust signals

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 23:16:04 +03:30
hamedandClaude Sonnet 4.6 ab9d078bf0 fix: fix SubscriptionPage crash — align with API response structure
API returns { subscription: {...}|null, used_trial: bool } not flat MySubscription.
- Added MySubscriptionData interface with correct nested shape
- Extract my = myRaw.subscription and usedTrial = myRaw.used_trial separately
- Replace my.used_trial references with usedTrial variable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 23:12:22 +03:30
hamedandClaude Sonnet 4.6 94580894c8 feat: add MySecretariesPage and AdminSubscriptionPage (PRD completion)
- MySecretariesPage: doctor/clinic can manage their own secretaries
  with add/permissions-matrix/deactivate; uses GET /api/v1/secretaries/{doctorUuid}
- AdminSubscriptionPage: admin can create/edit plans and periods,
  view subscription sales report; tabs: پنل‌ها / گزارش فروش
- Sidebar: add منشیان link for doctor+clinic roles, add اشتراک‌ها link for admin
- App.tsx: add /my-secretaries and /admin-subscription routes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 22:57:30 +03:30
hamedandClaude Sonnet 4.6 5a4116fee0 feat: add date range filter and new stats to dashboard (TASK-16)
- AdminDashboard: adds this_week/this_month/3_months preset buttons; charts query now passes from/to params; renamed appointments_30d→appointments_by_day and revenue_30d→revenue_by_day; adds subscription_sales_by_plan table
- ClinicDashboard: adds preset filter; query passes from/to; adds sms_wallet_balance, unique_patients_count, revenue_period_rials KPI cards
- DoctorDashboard: adds preset filter; query passes from/to; adds unique_patients_count, revenue_period_rials KPI cards
- Shared: getRange() helper and DatePreset type extracted at module level

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 22:33:56 +03:30
hamedandClaude Sonnet 4.6 69df9947a9 feat: rewrite MyPatientsPage with patient records and sessions (TASK-15)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 22:27:15 +03:30
hamedandClaude Sonnet 4.6 ed18c260ca feat: add Staff, Subscription, ClinicServices, SmsWallet pages (TASK-10,11,13,14)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 22:23:30 +03:30
hamed 7ea3523830 feat: implement frontend for Phase 2 tasks including staff management, subscription, and clinic services 2026-06-14 22:15:50 +03:30
hamed b0244f28f5 feat: implement staff management and subscription system
- Added StaffController for managing clinic staff, including listing, creating, updating, and toggling staff status.
- Created ClinicStaff entity and repository for staff data handling.
- Developed SubscriptionController to manage subscription plans and periods, including trial subscriptions.
- Introduced SubscriptionPlan, SubscriptionPeriod, and ClinicSubscription entities for subscription management.
- Implemented SubscriptionService for handling subscription logic, including trial activation and subscription creation from payments.
- Added necessary repositories for subscription entities to facilitate data access and manipulation.
2026-06-14 22:10:28 +03:30
hamed dcd631f503 feat: implement Phase 2 backend tasks including staff management, subscription tiers, secretary completion, clinic services, SMS panel, patient records, and smart dashboard 2026-06-14 21:38:48 +03:30
hamed b58aacc37f Implement SMS panel user flow and patient records system; add wallet charging, automatic reminders, and patient session management with detailed database schema and user flows. 2026-06-14 21:15:40 +03:30
hamed a72a6da621 feat: create phase 2 task documentation for staff management, subscription, secretary completion, clinic services, SMS panel, patient records, and smart dashboard 2026-06-14 21:02:18 +03:30
hamed 6ddc66ad74 Update PRD for ClinicPro Phase 2: Enhance project requirements, add new modules, and refine existing functionalities. Include detailed specifications for Staff, Subscription tiers, Clinic services, Patient records, SMS panel, and more. Revise API documentation and frontend requirements for better clarity and implementation guidance. 2026-06-14 20:53:49 +03:30
hamed a1d3442b9b Refactor PRD documentation: Remove outdated pre_prd.md and create comprehensive prd.md for ClinicPro Phase 2, detailing new features, requirements, and API endpoints. Add initial pre_prd.md for settings and staff management. 2026-06-14 20:43:59 +03:30
hamed 9c935c341f feat: add initial PRD for ClinicPro Phase 2 outlining staff management, subscription tiers, and patient records 2026-06-14 20:41:37 +03:30
hamed ab5dca4fb6 feat: add doctor_uuid support in authStore and update DoctorDetailPage to prioritize doctorUuid 2026-06-13 19:19:50 +03:30
hamed 09c393a574 feat: update primaryRole handling in authStore and adjust context role for clinics 2026-06-13 18:47:26 +03:30
hamed d05c070661 feat: enhance doctor address management by including clinic addresses and enforcing required fields 2026-06-13 18:30:06 +03:30
hamed c1c57df4ff feat: add clinic role support to doctor profile access and update API endpoint for clinic owners 2026-06-13 18:10:44 +03:30
hamed 5c2e9fae3f feat: add EyeIcon button to view doctor profile in ClinicDetailPage 2026-06-13 18:03:41 +03:30
hamed aa15addcb9 feat: implement doctor invitation acceptance logic to add doctors to clinic_doctors 2026-06-13 17:53:27 +03:30
hamed 5c167b5d39 feat: add owner mobile information to ClinicsPage and update API to fetch owner mobile 2026-06-13 17:39:56 +03:30
hamed d50fb96542 pwa setting 2026-06-13 13:28:39 +03:30
hamed 0b5d017b14 feat: enhance DoctorDetailPage with edit form helpers and gender selection options 2026-06-12 22:58:28 +03:30
hamed 87966a90fa feat: update ClinicDetailPage and ClinicsPage for address handling and UI improvements 2026-06-12 22:39:11 +03:30
hamed 960ff1ab29 feat: enhance DoctorFormPage with searchable specialties and improved UI components
- Refactored DoctorFormPage to use Controller from react-hook-form for better form handling.
- Added a new Field component for consistent input styling and error handling.
- Implemented a SpecialtyPicker component with improved selection logic for specialties.
- Updated the layout and styling of the form sections for better user experience.
- Integrated SearchableSelect for selecting specialties and roles in DoctorsPage and UsersPage.
- Added createClinic API endpoint to handle clinic creation with validation for mobile and name fields.
2026-06-12 20:43:47 +03:30
hamed 9e8064e101 feat: enhance SpecialtyPicker to support parent-child relationship for specialties 2026-06-12 19:32:56 +03:30
hamed 762a4794cf docs: update CLAUDE.md with first-time setup instructions and enhance response helpers documentation 2026-06-12 18:18:41 +03:30
hamed d8c4248059 feat: add database backup file for clinic data preservation 2026-06-12 15:36:05 +03:30
hamed 34ba1b781c fix: update clinicAddresses assignment for improved data handling 2026-06-12 14:52:50 +03:30
hamed 0333b24071 feat: enhance DoctorAddress entity to support clinic addresses and types
- Added `clinic_id` and `type` fields to `DoctorAddress` entity to differentiate between personal and clinic addresses.
- Updated constructor to support creation of addresses for both doctors and clinics.
- Modified repository methods to handle new address types and added methods for counting and finding addresses by clinic.
- Implemented migration to update the database schema accordingly.
- Removed deprecated endpoint for creating addresses from clinics and updated related controller methods.
- Added new endpoints for managing clinic addresses, including CRUD operations.
- Updated frontend components to handle new address types and display accordingly.
2026-06-12 13:39:37 +03:30
hamed 63073c6a42 feat: implement OTP login and password reset functionality with corresponding API endpoints and frontend updates 2026-06-12 12:54:29 +03:30
hamed 8ad983310c feat: add clinic management and financial reporting features
- Implemented ClinicFormPage for adding new clinics with validation.
- Created MyFinancialPage to display financial summaries and charts.
- Developed MyPatientsPage for managing patient data with search and pagination.
- Added PreRegistrationsPage for handling pre-registration requests with approval and rejection functionalities.
- Introduced database migration for pre_registrations table.
- Built PreRegistrationController for managing pre-registration logic, including submission, approval, and rejection.
- Created PreRegistration entity and repository for handling pre-registration data.
2026-06-12 12:31:27 +03:30
hamed 92cb834c22 feat: implement pre-registration system for doctors and clinics with public endpoint and admin management 2026-06-12 11:45:16 +03:30
hamed 484d3024c1 Refactor code structure for improved readability and maintainability 2026-06-12 11:00:24 +03:30
hamed c05ac7ca51 feat: add past slot validation to appointment controllers and update SlotCard component 2026-06-11 20:00:02 +03:30
hamed c1df5b73e7 feat: add appointment time and patient name display to CancelledBadge component 2026-06-11 19:57:53 +03:30