Commit Graph
358 Commits
Author SHA1 Message Date
hamed c3c520801d feat(captcha): add ALTCHA configuration endpoint and integrate into HomeController
- Introduced a new endpoint `/api/v1/altcha/config` in CaptchaController to return the status of the ALTCHA captcha.
- Updated HomeController to inject AltchaService and pass the captcha status to the home page template.
- Modified the home.html.twig template to conditionally render the ALTCHA widget based on the captcha status.
- Updated manifest.json and cache files to reflect changes in the codebase.
2026-07-10 11:18:40 +03:30
hamed 6f2e0ec2f1 feat: add ALTCHA captcha configuration to docker-compose 2026-07-10 11:07:44 +03:30
hamed 8b6d431f61 feat(auth): integrate Captcha validation in PasswordAuthenticator
- Added CaptchaGuard dependency to PasswordAuthenticator.
- Implemented Captcha validation in the authenticate method to enhance security.
- Updated the login modal in home.html.twig to redirect to the admin panel instead of opening a modal.
- Enhanced the Altcha widget with localized strings for better user experience.
- Removed the login modal implementation from home.html.twig to streamline the login process.
- Updated manifest.json and AST cache files to reflect changes in the codebase.
2026-07-10 11:05:59 +03:30
hamed aded526718 feat: implement login modal and altcha captcha for registration
- Added a login modal to the home page with mobile and password fields.
- Integrated altcha captcha for the registration process to enhance security.
- Updated the registration submission logic to include altcha payload.
- Improved error handling and user feedback for both login and registration processes.
2026-07-10 10:55:37 +03:30
hamed 10b0743d9a Implement ALTCHA captcha service with challenge generation and solution verification
- Added AltchaService class for managing ALTCHA captcha challenges and solutions.
- Created CaptchaController to handle API requests for generating challenges.
- Introduced CaptchaGuard for validating captcha solutions on public endpoints.
- Developed unit tests for AltchaService to ensure challenge creation and solution verification functionality.
- Implemented integration tests for the Captcha API endpoint and captcha bypass behavior when disabled.
- Added documentation for the Captcha API in the corresponding markdown file.
2026-07-10 10:31:59 +03:30
hamed 11efed4100 Add AST cache for AdminLogsTest.php with extracted nodes and edges 2026-07-10 09:48:45 +03:30
hamed 9d2023a72f fix: update JSON-LD schema and trust seal links for accuracy 2026-07-10 09:33:20 +03:30
hamed 7f9ef282c0 feat: update worker commands to ensure continuous message consumption with retry logic 2026-07-09 18:15:24 +03:30
hamed 6587b78f48 namd 2026-07-09 12:27:49 +03:30
hamed 3fbdb01add meta 2026-07-09 12:12:43 +03:30
hamed 0ad8487aac feat: add SeedDemoDataCommand for seeding production-like demo data for testing representations, doctors, clinics, users, appointments, and commissions 2026-07-09 08:07:41 +03:30
hamed 0750bc9812 feat: add multi-city representation support and domain context resolution
- Created migration to add representation_cities table and domain, is_global fields to representations.
- Implemented SiteContextController to resolve domain to site context (city | representation | unknown).
- Developed DomainContext and DomainContextResolver services for domain mapping.
- Added tests for DomainContextResolver and commission logic based on domain ownership.
2026-07-09 07:26:58 +03:30
hamed 59559e2e31 feat: enhance diagnostics script and documentation for Redis connection issues 2026-07-08 20:06:45 +03:30
hamed 880648cae8 Add AST JSON files for new documentation and scripts
- Created JSON representation for `collect-diagnostics.sh` including nodes and edges for its structure.
- Added JSON for `ops-restarts.md` detailing various sections and their relationships.
- Introduced JSON for `server-down-oom-diagnosis.md` capturing its content and connections.
2026-07-08 18:00:01 +03:30
hamed a5460cbaa9 fix: reduce memory_limit to 256M and configure PHP-FPM process management settings 2026-07-08 17:54:20 +03:30
hamed c6fa92b9a4 fix: correct phone number format in home.html.twig 2026-07-08 17:40:35 +03:30
hamed 3e98514bda fix: update contact information and WhatsApp numbers in cities.json 2026-07-08 12:25:55 +03:30
hamed ccbb1d0b1f feat: Add City entity methods and migration for title field
- Created a new JSON file for the City entity's AST representation, detailing its methods and properties.
- Added a migration to alter the cities table by adding a nullable title column.
2026-07-08 12:19:06 +03:30
hamed 94541ad609 Add JSON representation of composer.json structure with nodes and edges 2026-07-08 11:27:54 +03:30
hamed 8f4f7fc951 fix: update KavehNegarProvider to use GET requests with query parameters to resolve 431 and idle timeout errors 2026-07-08 09:51:30 +03:30
hamed 5e5455cf8c fix: add ext-soap to Dockerfile and composer.json to resolve SoapClient not found error in production 2026-07-08 09:37:19 +03:30
hamed a2c809b7de Add SmsServiceLookupOnlyTest AST and migration for template_code in sms_logs
- Created a new AST JSON file for SmsServiceLookupOnlyTest.php, detailing nodes, edges, and raw calls for better code analysis.
- Added a new migration (Version20260707202553) to alter the sms_logs table by adding a nullable template_code column.
2026-07-08 00:03:33 +03:30
hamed 2982eaa7e3 update compose 2026-07-07 15:07:34 +03:30
hamed 87f4d1695f Add CorsRegexEnvProcessor and corresponding tests
- Implemented CorsRegexEnvProcessor to build CORS origin regex from a comma-separated host list (ALLOWED_FRONTEND_HOSTS).
- Added tests for CorsRegexEnvProcessor to validate regex generation and matching behavior.
- Created JSON files for AST representation of the new classes and tests.
2026-07-07 14:58:41 +03:30
hamed 4ee1524f31 Add AST JSON files for NotificationMobileController and manifest.json; create SmsServiceLookupOnlyTest for SMS service functionality 2026-07-07 14:41:22 +03:30
hamed 57d081246f feat: update scheduler_default transport to disable retries for transient failures 2026-07-07 13:00:42 +03:30
hamed adbf401ed8 feat: update cancel mutation to set appointment status to 'cancelled_by_doctor' 2026-07-07 11:47:43 +03:30
hamed fd553b2c4f feat: add promotional video script for Clinic Pro motion graphics 2026-07-05 15:25:53 +03:30
hamed a21b0ee4ab feat: update SMS templates and logic to ensure required tokens are present for Kavenegar integration 2026-07-05 11:54:12 +03:30
hamed 87d94801f8 feat: add Kavenegar template guide and update PreRegistrationController to use appUrl 2026-07-05 11:27:10 +03:30
hamed 969dc9651f Refactor SMS sending to use KavehNegar VerifyLookup templates
- Removed SmsTextResolver dependency from multiple services and controllers.
- Introduced dispatchTemplate method in SmsService to handle SMS sending with templates.
- Updated existing SMS sending logic across various services (OtpService, PreRegistrationController, ClinicInvitationService, PaymentManager, SecretaryController, RepresentationActionController) to utilize the new dispatchTemplate method.
- Enhanced SmsMessageTemplate entity to include kavenegar_template and token_map fields.
- Created migration to add new fields to the sms_message_templates table and populate them with existing data.
- Updated SeedSmsMessageTemplatesCommand to handle new template structure.
- Added documentation for the new SMS template structure and usage.
2026-07-05 11:20:53 +03:30
hamed 828e3552c0 feat(subscription): implement effective plan logic and update free plan features 2026-07-05 10:46:31 +03:30
hamed f3ca6d844f feat: implement Portal component and refactor modals to use it for improved positioning 2026-07-04 22:05:27 +03:30
hamed ae1e40aeee feat: enable portal rendering for ImageCropModal component 2026-07-04 21:55:14 +03:30
hamed 6ade17a5b4 feat: implement OTP sending via Kavenegar VerifyLookup and add image cropping modal
- Added support for sending OTP messages using Kavenegar's VerifyLookup method, ensuring compliance with specified token formatting and template usage.
- Updated OtpService to handle new template parameters and fallback mechanisms.
- Introduced ImageCropModal component for cropping images with a user-friendly interface.
- Created utility function for cropping images and generating downloadable files.
2026-07-04 21:50:55 +03:30
hamed 1bb9cedd22 feat(auth): add optional domain parameter to send OTP code for site personalization 2026-07-04 11:01:54 +03:30
hamed 8df7b2f2e0 Implement feature X to enhance user experience and optimize performance 2026-07-03 12:42:16 +03:30
hamed 426cc500cc feat(cities): update site name for نوبت 724 to remove redundancy 2026-07-03 12:30:03 +03:30
hamed 9cabdb33e8 feat(assets): replace logo image with SVG format and update favicon; adjust theme color in manifest 2026-07-03 12:00:52 +03:30
hamed 913a8c4bfa chore(logo): remove unused logo image file 2026-07-03 12:00:48 +03:30
hamed 2a420f5899 feat(cities): update site name for نوبت 724 and add new cities (دهدشت, بهبهان) with relevant details 2026-07-03 11:37:48 +03:30
hamed 6dbbeb1c70 feat(currency): update currency display to toman in admin panel; implement conversion functions for rial to toman and vice versa 2026-07-03 10:31:17 +03:30
hamed 34d521434f feat(payment): implement expiration handling for appointment payments 2026-07-03 09:53:55 +03:30
hamed ab83a64d9d Refactor code structure for improved readability and maintainability 2026-07-02 21:40:32 +03:30
hamed 1c81c6f2e5 Add JSON files for Payment Gateway Interface and API documentation updates
- Created a new JSON file for the PaymentGatewayInterface.php, detailing its methods and return types.
- Added a JSON file for payment.md, documenting various API endpoints and their parameters, responses, and errors.
- Introduced a JSON file for fix-admin-modal-and-calendar.md, outlining issues and solutions related to admin modal and calendar functionalities.
2026-07-02 21:22:14 +03:30
hamed 1804b4215d feat(sms): add doctor appointment notification SMS for paid appointments 2026-07-02 21:11:17 +03:30
hamedandClaude Opus 4.8 10be1728ff fix(payment): skip Shaparak IP allowlist for browser-redirect gateways (mellat/sep)
Mellat/SEP return the result via a user-browser redirect (POST/GET), so the
received IP is the user's, not Shaparak's. The IP allowlist therefore rejected
every real callback — including user cancel — with 'forbidden'. Security is
provided by the tamper check (RefId/SaleOrderId) and server-side verify.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 20:33:35 +03:30
hamed 27b2d66afa feat(payment): enhance Mellat gateway with sandbox support and WSDL configuration 2026-07-02 20:15:41 +03:30
hamed 1b171a82f4 feat(payment): add refund and reversal functionality to payment gateways
- Implemented `refund` and `reverse` methods in `PaymentGatewayInterface`.
- Added `PaymentRefundResult` class to handle refund operation results.
- Enhanced `MockGateway` and `SepGateway` to support refund and reversal operations.
- Updated `PaymentManager` to include `refundPayment` and `reversePayment` methods for handling refunds and reversals in transactions.
- Modified `ClinicSubscriptionRepository` and `SubscriptionService` to manage subscriptions during refunds.
- Added admin API endpoints for processing refunds and reversals.
- Updated security headers to allow form actions to the sandbox environment.
- Documented the new refund and reversal features in the API documentation.
2026-07-02 18:45:34 +03:30
hamed 6bb47d343d feat(payment): update Mellat gateway implementation and enhance security checks 2026-07-02 17:51:50 +03:30