ifnex/04_Laravel
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
..
app refactor(api): improve pricing logic and add test coverage 2026-08-07 04:39:14 +03:30
bootstrap refactor(api): expose wallet and discount endpoints and cleanup project 2026-08-05 22:46:31 +03:30
config feat(api): implement payment gateway integration 2026-08-05 23:49:33 +03:30
database refactor(api): improve pricing logic and add test coverage 2026-08-07 04:39:14 +03:30
public refactor(import): enhance shipping rates import and refine PDF layouts 2026-08-04 09:47:22 +03:30
resources docs(pdf): add technical mapping and implementation notes to templates 2026-08-04 09:50:53 +03:30
routes refactor(api): improve pricing logic and add test coverage 2026-08-07 04:39:14 +03:30
storage feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
tests refactor(api): improve pricing logic and add test coverage 2026-08-07 04:39:14 +03:30
.editorconfig feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
.env.example refactor(api): expose wallet and discount endpoints and cleanup project 2026-08-05 22:46:31 +03:30
.phpunit.result.cache refactor(api): improve pricing logic and add test coverage 2026-08-07 04:39:14 +03:30
artisan feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
composer.json feat(shipment): implement PDF generation for AWB, invoice, and labels 2026-08-04 09:20:23 +03:30
composer.lock feat(shipment): implement PDF generation for AWB, invoice, and labels 2026-08-04 09:20:23 +03:30
package.json feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
phpunit.xml feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30
README.md docs(project): update documentation and project status for phase 1 2026-08-04 09:58:33 +03:30
vite.config.js feat: Complete Phase 1 core logic and WP bridge setup 2026-08-01 04:01:22 +03:30

IFNEX Logistics — Backend (Laravel 11)

بخش بک‌اند سیستم لجستیک ایف‌نکس. این پوشه به تنهایی یک اپلیکیشن لاراول ۱۱ کامل است.


🚀 راه‌اندازی سریع

composer install
cp .env.example .env
php artisan key:generate
php artisan migrate --force
php artisan db:seed --force
php artisan serve

📦 پکیج‌های اصلی

پکیج نسخه نقش
laravel/framework ^11.0 هسته فریم‌ورک
filament/filament 3.3.* پنل مدیریت ادمین
maatwebsite/excel ^3.1 ایمپورت اکسل
barryvdh/laravel-dompdf ^3.1 تولید PDF
dompdf/dompdf ^3.0 موتور تولید PDF
morilog/jalali ^3.0 تبدیل تاریخ شمسی/میلادی

📁 ساختار کد

04_Laravel/
├── app/
│   ├── Models/              # مدل‌های Eloquent
│   ├── Enums/               # Enumهای سفارشی
│   ├── Services/            # PriceCalculatorService, PdfService, ...
│   ├── Http/
│   │   ├── Controllers/
│   │   │   ├── Api/         # PricingController, TrackController
│   │   │   ├── OrderController.php
│   │   │   ├── PricingPageController.php
│   │   │   └── ShipmentPdfController.php
│   │   ├── Middleware/       # ApiKeyMiddleware
│   │   └── Requests/        # Form Request Validation
│   ├── Imports/             # ShippingRatesImport
│   ├── Console/Commands/    # ImportShippingRates
│   └── Filament/            # پنل مدیریت
│       ├── Resources/       # Country, Shipment, ShippingRate, ShipmentItem
│       └── Pages/           # Settings, Dashboard
├── database/
│   ├── migrations/          # ۷ migration فاز ۰
│   └── seeders/             # seeders داده اولیه
├── routes/
│   ├── web.php              # /order, /pricing, PDF downloads
│   └── api.php              # /api/v1/calculate, /api/v1/track/{awb}
└── config/
    ├── ifnex.php            # تنظیمات اختصاصی
    └── cors.php             # تنظیمات CORS

🔌 API Endpoints

روش مسیر توضیحات
POST /api/v1/calculate محاسبه قیمت حمل (بدون احراز هویت)
GET /api/v1/track/{awb_no} استعلام وضعیت مرسوله با API Key

درخواست نمونه محاسبه قیمت:

curl -X POST http://localhost:8000/api/v1/calculate \
  -H "Content-Type: application/json" \
  -d '{
    "direction": "Outbound",
    "type": "DOC_NORMAL",
    "country_iso": "AE",
    "weight": 1,
    "volumetric_weight": 1
  }'

🛠️ دستورات Artisan سفارشی

# ایمپورت نرخ‌های حمل از اکسل
php artisan ifnex:import:rates {path} [--clear] [--dry-run]

# ایمپورت داده‌های ترکینگ
php artisan ifnex:import:tracking {path}

🌐 صفحات عمومی

مسیر توضیحات
/ صفحه اصلی
/order فرم ثبت سفارش آنلاین
/order/success/{shipment} صفحه تایید سفارش
/pricing صفحه استعلام قیمت
/shipments/{id}/pdf/awb دانلود AWB (نیاز به لاگین)
/shipments/{id}/pdf/invoice دانلود INVOICE (نیاز به لاگین)
/shipments/{id}/pdf/label دانلود LABEL (نیاز به لاگین)

🔐 احراز هویت و دسترسی

نقش دسترسی
super_admin دسترسی کامل به همه بخش‌های Filament
tracking_operator مدیریت ترکینگ و رویدادها
data_entry وارد کردن داده‌های مرسوله
customer دسترسی محدود (در فاز بعدی)

⚠️ نکات مهم

  • Laravel 11 — با سوییچ از v12 انجام شد
  • Livewire 3.8.3 — فرم‌ها با AJAX کار می‌کنند، POST مستقیم به /admin/login ثبت نمی‌شود
  • Filament 3.3.x — پنل مدیریت در مسیر /admin
  • MySQL 8+ — الزام migrations با JSON columns
  • DomPDF — برای تولید PDFهای AWB, INVOICE, LABEL استفاده می‌شود

📚 مستندات بیشتر

برای اطلاعات کامل‌تر به پوشه 01_Documents در ریشه پروژه مراجعه کنید:

  • STATUS.md — وضعیت فعلی و گزارش پیشرفت
  • IFNEX_Phase0_Checklist.md — چک‌لیست دقیق فاز ۰
  • Phase0_Proposal.md — مرجع اصلی پروژه
  • EXCEL_ANALYSIS.md — تحلیل کامل فایل‌های اکسل عملیاتی

📜 لایسنس

© 2026 VernaSoft Group (Kazem Alghasi). All rights reserved.

این پروژه اختصاصی شرکت IFNEX است و کپی یا استفاده‌ی غیرمجاز از آن ممنوع است.