Commit Graph

38 Commits

Author SHA1 Message Date
Kazem Alghasi
b605b689fd feat(wp-plugin): expand IFNEX Bridge with wallet and transaction support
Extend the WordPress bridge plugin to provide seamless integration with
the backend wallet system. This update introduces user-specific
functionality via shortcodes and AJAX.

- feat(bridge): implement `IFNEX_User_Bridge` for Sanctum token management
- feat(bridge): add `[ifnex_wallet_balance]` shortcode for balance display
- feat(bridge): add `[ifnex_transactions]` shortcode for transaction history
- feat(bridge): implement AJAX handlers for real-time balance and transaction updates
- feat(bridge): add plugin-specific CSS assets and enqueueing logic
- docs: update project status with new bridge capabilities
- chore: add plugin testing utility and asset directory structure
2026-08-08 03:49:46 +03:30
Kazem Alghasi
e1c4385a9c feat(finance): implement Filament admin panel and expand wallet/discount features
Implement a comprehensive financial management suite within the Filament
admin panel, including new resources for payments and discount codes,
along with a financial dashboard.

- feat(ui): add Filament Dashboard with finance overview and transaction
  widgets
- feat(ui): implement PaymentResource for monitoring gateway transactions
- feat(ui): complete DiscountCodeResource with full CRUD and filtering
- feat(wallet): add automatic wallet creation on balance retrieval
- fix(wallet): resolve null handling in isFrozen() and balance viewing
- fix(db): correct enum type from 'percent' to 'percentage' in
  discount_codes migration
- fix(api): update pricing calculation endpoint to /api/v1/calculate
- test: add 21 new feature and service tests covering wallet, payment,
  and discount logic
- chore: remove obsolete PaymentGatewayService and update project status
2026-08-08 03:15:51 +03:30
Kazem Alghasi
7948487a7a docs: update STATUS.md to archive competitor pricing formula task 2026-08-08 01:02:37 +03:30
Kazem Alghasi
d5500f880a docs: update STATUS.md with Phase 2 payment integration progress 2026-08-08 00:53:55 +03:30
Kazem Alghasi
2e7f975094 feat(wallet): complete online payment with Zarinpal + mock gateway
- Add ZarinpalService for production payment gateway
- Add MockZarinpalService for testing without real merchant ID
- Add MockGatewayController for simulating payment page
- Add beautiful mock gateway UI with RTL support
- Update PaymentController to switch between mock/real based on config
- Fix double-click bug: prevent re-processing completed transactions
- Add payment-result page with success/failure UI
- All API endpoints tested successfully:
  * balance, transactions, activity-log
  * admin-adjust (deposit/withdrawal)
  * freeze/unfreeze
  * online payment redirect + callback + verify
- Wallet balance verified: 67,700,000 IRR after all transactions
- 5 transactions recorded with correct gateways (manual/zarinpal)

Closes: Payment gateway integration for Phase 2
2026-08-08 00:46:54 +03:30
Kazem Alghasi
78f5919b69 feat(wallet): complete wallet system with admin adjust, freeze/unfreeze, activity logs
- Add Enums: TransactionType, TransactionStatus, PaymentGateway
- Migrations: wallets, wallet_transactions, wallet_activity_logs
- Models: Wallet, WalletTransaction, WalletActivityLog
- Services: WalletService with complete business logic
- Controllers: WalletController, PaymentController
- Filament Resources: WalletResource, WalletTransactionResource
- Artisan Command: ifnex:token for API token generation
- Sanctum integration with statefulApi and exception handling
- Full API endpoints: balance, transactions, admin-adjust, freeze/unfreeze
2026-08-07 22:51:42 +03:30
Kazem Alghasi
285acdae89 docs(project): update project status, roadmap, and documentation
Update project documentation to reflect the completion of Phase 0 and Phase 1, and the commencement of Phase 2. This includes archiving obsolete documents, updating the README with a new architectural overview, and refining the project checklist and status reports.

- Archive obsolete PRD and Roadmap documents
- Update `IFNEX_Phase0_Checklist.md` with completed tasks and Phase 2 roadmap
- Update `STATUS.md` with recent development progress for August 2026
- Refactor `04_Laravel/README.md` to include detailed technical specifications and architecture diagrams
- Update root `README.md` with updated versioning and system architecture visualization
- Refine `PriceCalculatorServiceTest.php` to align with updated service output structures
2026-08-07 05:58:12 +03:30
Kazem Alghasi
abae820070 refactor(api): improve pricing logic and add test coverage
Refactor the pricing calculation service and shipping rate import logic to improve consistency and reliability. This includes updating direction naming conventions, enhancing model casting, and adding comprehensive test suites.

- Update `ShippingRatesImport` to use 'outbound' and 'inbound' instead of 'export' and 'import'
- Refactor `PriceCalculatorService` to use a more modular calculation structure
- Update `ShippingRate` model to use explicit property casting for zones
- Add `HasFactory` trait to `Country` and `ShippingRate` models
- Add new database factories for `Country` and `ShippingRate`
- Implement new feature tests for API endpoints and service logic
- Add new service tests for `PriceCalculatorService`
2026-08-07 04:39:14 +03:30
Kazem Alghasi
1ea9486ca1 docs(imports): add documentation comments to ShippingRatesImport 2026-08-06 01:39:26 +03:30
Kazem Alghasi
50ae20b14a feat(api): implement payment gateway integration
Add Zarinpal configuration options and implement the core payment
infrastructure, including the Payment model, migration, service
layer, and API controller.
2026-08-05 23:49:33 +03:30
Kazem Alghasi
8d228993f9 refactor(api): expose wallet and discount endpoints and cleanup project
Implement new API controllers for wallet management and discount code
validation. This includes adding an Artisan command for exchange rate
updates and refining the API routing structure.

Additionally, perform a significant cleanup of the repository by
removing obsolete migrations, debug scripts, and temporary test files.
Security and configuration improvements include restricting CORS origins
via environment variables and updating the system settings schema.

- Add `WalletController` and `DiscountCodeController` APIs
- Add `UpdateExchangeRates` command
- Remove redundant migrations and debug/test scripts
- Secure CORS configuration using `CORS_ALLOWED_ORIGINS`
- Update `STATUS.md` to reflect current phase progress
2026-08-05 22:46:31 +03:30
Kazem Alghasi
f5917c34c2 feat(logic): integrate discount code application and wallet services
Implement the core logic for applying discount codes during price
calculation and introduce the WalletService. This includes updating
the PriceCalculatorService to validate and apply discounts,
incrementing usage counts, and adding a Filament resource for
managing discount codes via the admin panel.

Additionally, refactor TrackingDataImport to use OnEachRow for better
memory management during large Excel imports.
2026-08-05 19:16:09 +03:30
Kazem Alghasi
6aa18f76a8 feat(db): implement wallet and discount code systems
Add database migrations and Eloquent models to support user wallets,
transaction history, and discount code functionality. Includes a
one-to-one relationship between User and Wallet.
2026-08-05 17:35:58 +03:30
Kazem Alghasi
67754f3e08 refactor(ui): clean up middleware configuration in AdminPanelProvider
Remove unused Filament middleware components to simplify the panel provider configuration.
2026-08-05 16:57:25 +03:30
Kazem Alghasi
a549ce8d8e chore(wp): allow ifnex-bridge plugin in gitignore
Exclude the ifnex-bridge plugin directory from being ignored by
adding an exception rule to the .gitignore file.
2026-08-04 11:38:48 +03:30
Kazem Alghasi
97e641de42 feat(wp): add ifnex-bridge plugin for Laravel API integration
Implement a new WordPress plugin to bridge the frontend with the Laravel
logistics API. This includes:

- API client for secure shipment tracking via Bearer token
- Admin settings page for configuring API URL and Key
- Shortcodes for embedding tracking forms and status displays
- AJAX-based tracking form with real-time results and timeline view
2026-08-04 11:38:36 +03:30
Kazem Alghasi
8f66efac00 docs(project): update project status to phase 2 and mark phase 1 as complete 2026-08-04 11:34:48 +03:30
Kazem Alghasi
e9b94252e6 chore(docs): remove obsolete phase 0 proposal document 2026-08-04 11:17:36 +03:30
Kazem Alghasi
91ecbc7656 docs(project): update documentation and project status for phase 1
Update project documentation to reflect the completion of Phase 0 and
the current progress of Phase 1. This includes:

- Updating `STATUS.md` and `README.md` to mark Phase 0 as completed.
- Adding details for Phase 1 features: `PriceCalculatorService`, online
  order forms, and professional PDF generation.
- Documenting new API endpoints for price calculation and tracking.
- Updating the Laravel technical stack to include `dompdf` and
  `laravel-dompdf`.
- Detailing the new directory structure and public web routes.
2026-08-04 09:58:33 +03:30
Kazem Alghasi
31d28fbe68 docs(pdf): add technical mapping and implementation notes to templates
Add detailed documentation within AWB, Invoice, and Label PDF templates
to map HTML elements to specific Excel cell references and VLOOKUP
sources. This includes requirements for fonts, colors, and dimensions
to ensure future alignment with official IFNEX branding and Excel
templates.

Also update project status to reflect completed middleware configuration
tasks.
2026-08-04 09:50:53 +03:30
Kazem Alghasi
f330d13620 refactor(import): enhance shipping rates import and refine PDF layouts
Improve the reliability and usability of the shipping rates import
process and update PDF document templates for better visual fidelity.

- Enhance `ImportShippingRates` command with `--clear` and `--dry-run`
  options to prevent accidental data loss and allow safe testing.
- Implement error handling and statistics tracking in `ShippingRatesImport`
  to capture skipped rows and import errors.
- Refactor AWB and Label PDF templates to use A4 standard dimensions
  and improved CSS layouts.
- Integrate company logo into PDF headers.
- Add a new pricing inquiry page and navigation link.
- Clean up obsolete test scripts.
2026-08-04 09:47:22 +03:30
Kazem Alghasi
5874568c63 feat(shipment): implement PDF generation for AWB, invoice, and labels
Introduce PDF generation capabilities for shipments using laravel-dompdf.
This includes a new service layer, dedicated controller, and routes
to handle the generation of Air Waybills (AWB), Invoices, and Shipping
Labels.

- Add `PdfService` to encapsulate PDF generation logic.
- Add `ShipmentPdfController` to handle PDF download requests.
- Integrate `barryvdh/laravel-dompdf` dependency.
- Add Filament header actions to view shipment pages for quick PDF access.
- Update order success view to provide direct download links for documents.
- Add label methods to `ShipmentDirection` and `ShipmentType` enums.
- Update project status documentation to reflect initial PDF implementation.
2026-08-04 09:20:23 +03:30
Kazem Alghasi
24fc56feaf feat(order): implement order creation flow and pricing API
Introduce order management functionality including web routes for creating orders and a new API endpoint for price calculations. This change also cleans up the codebase by removing various debug scripts used during the development of the shipping rate logic.

- Add `OrderController` to handle order creation and success redirection.
- Add `POST /v1/calculate` endpoint for pricing calculations.
- Define web routes for order creation flow (`/order`).
- Remove multiple debug PHP scripts from the `04_Laravel` directory.
- Add base layout and order view directories.
2026-08-04 07:59:23 +03:30
Kazem Alghasi
3aaa9a5481 refactor(api): improve shipping rate import and pricing logic
Refactor the shipping rate import process to support bidirectional
data handling (import/export) and implement currency conversion using
system settings. Update the price calculator to ensure valid zone
data is retrieved.

- Update `ShippingRatesImport` to handle both import and export
  directions via `SimpleRateSheetImport`.
- Implement AED to IRR conversion during rate importation using
  `SystemSetting`.
- Add validation for zone numbers and rate values during import.
- Enhance `PriceCalculatorService` to filter for non-zero zone values.
- Add various debug and testing scripts for pricing and data
  structure verification.
2026-08-04 07:24:23 +03:30
Kazem Alghasi
d6095265e7 docs: update phase 0 checklist and project status
Update the project documentation to reflect the successful completion of all Phase 0 tasks, including Filament manual testing, tracking data migration, WordPress bridge plugin development, and API testing.

- Mark all R1-R5 items as completed in `IFNEX_Phase0_Checklist.md`
- Update `STATUS.md` to show completed status for high and medium priority tasks
2026-08-04 05:59:29 +03:30
Kazem Alghasi
f8557a0f20 feat(console): add tracking data import functionality and utility scripts
Implement a new Artisan command and Excel import logic to handle tracking data ingestion. This includes registering new commands in the application bootstrap and providing several utility scripts for debugging and testing the import process.

- Add `ImportTrackingData` command and `TrackingDataImport` class
- Register `ImportShippingRates` and `ImportTrackingData` in `app.php`
- Add `ifnex:import:tracking` closure command in `console.php`
- Include various debugging and testing scripts for Excel and shipment verification
2026-08-04 05:38:35 +03:30
Kazem Alghasi
1c3811b01f feat(ui): localize filament admin panel and refactor settings page
Refactor the IfnexSettingsPage to use a custom Blade view and implement manual property binding for system settings. Additionally, localize navigation labels and groups to Persian for the Filament admin interface.

- Implement `ifnex-settings.blade.php` for custom settings management
- Localize navigation labels for Countries, Shipment Items, Shipments, and Shipping Rates
- Update navigation groups to Persian (تنظیمات, عملیات)
- Refactor `IfnexSettingsPage` to load settings from `SystemSetting` model during `mount`
- Fix type hinting for `ShipmentDirection` enum in `ShipmentResource` table columns
2026-08-04 04:44:24 +03:30
Kazem Alghasi
11845173b6 chore(docs): update project status and resolve data migration blockers
Update project documentation to reflect the resolution of previous data migration blockers and the availability of new tracking data.

- Update `IFNEX_Phase0_Checklist.md` to reflect that historical shipment imports are no longer blocked and that tracking data is now available.
- Revise `STATUS.md` to remove references to the 3950-record migration requirement and update the roadmap to focus on tracking data migration using the newly provided Excel file.
- Add `Data entry 2026-06-28.xlsx` as the primary source for tracking data migration.
- Reorganize the remaining tasks in the checklist and status reports to reflect the current project state.
2026-08-04 02:28:19 +03:30
Kazem Alghasi
f1eb6b179c docs(docs): update project documentation and roadmap
Update project documentation to reflect the transition to Laravel 11,
Filament 3.3, and the new 4-phase roadmap.

- Mark `PRD_v2.md` as deprecated and provide guidance on official
  sources (`Phase0_Proposal.docx`, `STATUS.md`).
- Update `Project_Roadmap.md` to reflect the current 4-phase structure
  and Phase 0 progress.
- Revise `04_Laravel/README.md` with detailed setup instructions,
  package lists, and directory structure.
- Update root `README.md` with versioning, technology stack details,
  and improved project structure overview.
2026-08-04 02:11:58 +03:30
Kazem Alghasi
a59e192b32 ۱۰ مورد کامل شد (دیتابیس، مدل‌ها، API، Filament، Laravel 11، رفع باگ‌ها)
🔄 در حال انجام: تست دستی Filament
⏸️ بلاک: مهاجرت ۳۹۵۰ رکورد (منتظر فایل اکسل اصلاح‌شده)
⏸️ بلاک: پلاگین وردپرس (بعد از تست کامل API)
2026-08-04 01:59:08 +03:30
Kazem Alghasi
97fa3a9561 اضافه شدن فایل های توضیحی 2026-08-02 05:13:12 +03:30
Kazem Alghasi
673cd407a6 ifnex phase0 proposal doc 2026-08-02 04:53:47 +03:30
Kazem Alghasi
4ce5fa8f96 some edites and readme texts 2026-08-02 04:50:17 +03:30
Kazem Alghasi
50940d4ee8 more text 2026-08-01 04:26:58 +03:30
Kazem Alghasi
9419f5c484 more text 2026-08-01 04:25:27 +03:30
Kazem Alghasi
42bb7fed4e read me texts 2026-08-01 04:21:11 +03:30
Kazem Alghasi
c95e992dbb feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
Kazem Alghasi
852608aa98 first commit 2026-08-01 03:58:55 +03:30