ifnex/01_Documents/IFNEX_Phase0_Checklist.md
Kazem Alghasi a59e192b32 ۱۰ مورد کامل شد (دیتابیس، مدل‌ها، API، Filament، Laravel 11، رفع باگ‌ها)
🔄 در حال انجام: تست دستی Filament
⏸️ بلاک: مهاجرت ۳۹۵۰ رکورد (منتظر فایل اکسل اصلاح‌شده)
⏸️ بلاک: پلاگین وردپرس (بعد از تست کامل API)
2026-08-04 01:59:08 +03:30

12 KiB
Raw Blame History

IFNEX Phase 0 Checklist

فاز: Phase 0 — بنیان داده + ترکینگ دستی + مهاجرت داده‌های تاریخی
تاریخ ایجاد: 2026-08-04
وضعیت کلی: در حال اجرا
مرجع اصلی: 01_Documents/Phase0_Proposal.md


پیش‌نیازها

# شرط وضعیت توضیحات
P1 Laravel 11 نصب و قابل اجرا انجام شد در پوشه 04_Laravel
P2 MySQL 8+ قابل دسترس انجام شد دیتابیس ifnex_db ایجاد شده
P3 Composer dependencies نصب شده انجام شد filament 3.3.x, maatwebsite/excel, morilog/jalali 3
P4 فایل‌های اکسل اصلی در دسترس ⚠️ موجود فقط داده‌های ۲ ردیف اول شیت List واقعی هستند، بقیه فرمول Excel

بخش ۱: دیتابیس و مدل‌ها

# کار وضعیت توضیحات
1.1 Migration countries با ۴ زون انجام شد iso_code + is_active اضافه شد
1.2 Migration shipments مطابق Phase 0 انجام شد ۱۱ فیلد مالی + ۴ زون + nullable حقایل
1.3 Migration shipping_rates با enum انجام شد direction + type (DOC_NORMAL/DOC_ECONOMY/PARCEL)
1.4 Migration shipment_carrier_mappings انجام شد جدول جدید برای نگاشت چند شرکت حمل
1.5 Migration shipment_tracking_events انجام شد جدول جدید برای تایم‌لاین رویدادها
1.6 Migration system_settings انجام شد جدول key-value
1.7 Migration update_users انجام شد phone, role, is_active
1.8 حل مشکل unsignedDecimal انجام شد استفاده از decimal()->unsigned()
1.9 حل مشکل FK constraints انجام شد disableForeignKeyConstraints()
1.10 اجرای همه migrations انجام شد بدون خطا

مدل‌ها و Enums

# کار وضعیت توضیحات
2.1 مدل Country.php + روابط انجام شد fromShipments() + toShipments()
2.2 مدل Shipment.php + روالات کامل انجام شد items(), carrierMappings(), trackingEvents()
2.3 مدل ShippingRate.php انجام شد cast برای enums
2.4 مدل User.php + helper methods انجام شد phone, role, is_active
2.5 مدل ShipmentCarrierMapping.php انجام شد
2.6 مدل ShipmentTrackingEvent.php انجام شد
2.7 مدل SystemSetting.php انجام شد
2.8 Enum ShipmentDirection انجام شد import/export
2.9 Enum ShipmentType انجام شد DOC_NORMAL/DOC_ECONOMY/PARCEL
2.10 Enum ShipmentStatus انجام شد ۷ وضعیت
2.11 Enum CarrierCode انجام شد ۹ شرکت حمل
2.12 Enum TrackingSource انجام شد manual/api_carrier/api_aggregator
2.13 Enum UserRole انجام شد ۴ نقش

بخش ۲: Seeders و داده‌های اولیه

# کار وضعیت توضیحات
3.1 Seeder ۲۳۲ کشور با ۴ زون انجام شد تصحیح کدهای ISO، حذف تکراری‌ها
3.2 Seeder System Settings انجام شد VAT 9%, packing 100000 IRR, profit_margin 1.25
3.3 Seeder Super Admin User انجام شد
3.4 DatabaseSeeder ترکیبی انجام شد

بخش ۳: API ترکینگ

# کار وضعیت توضیحات
4.1 ایجاد TrackController انجام شد JSON response کامل
4.2 ایجاد ApiKeyMiddleware انجام شد Bearer token validation
4.3 ثبت route GET /api/v1/track/{awb_no} انجام شد
4.4 تست با API Key صحیح انجام شد 200 OK
4.5 تست بدون API Key انجام شد 401 Unauthorized
4.6 تست با API Key نامعتبر انجام شد 403 Forbidden

بخش ۴: پنل مدیریت Filament

Resources اصلی

# کار وضعیت توضیحات
5.1 CountryResource انجام شد فرم ۴ زون + iso_code + is_active
5.2 ShipmentResource انجام شد ۷ Section کامل
5.3 ShippingRateResource انجام شد ۱۰ zone + enum
5.4 ShipmentItemResource انجام شد CRUD کامل
5.5 CarrierMappingsRelationManager انجام شد برای Shipment
5.6 TrackingEventsRelationManager انجام شد برای Shipment
5.7 SettingsPage انجام شد System Settings
5.8 صفحه‌های List/Create/Edit/View انجام شد برای همه Resources

بخش ۵: Services

# کار وضعیت توضیحات
6.1 TrackingService انجام شد getTrackingTimeline, addTrackingEvent, getShipmentWithTracking
6.2 PriceCalculatorService انجام شد ۹ مرحله محاسبه

بخش ۶: Excel Imports

# کار وضعیت توضیحات
7.1 ShippingRatesImport انجام شد ۴۰۴ رکورد import شد
7.2 HistoricalShipmentsImport ⚠️ جزئی فقط ۱ رکورد موفق (بقیه فرمول Excel هستند)
7.3 Artisan Command ifnex:import:rates انجام شد
7.4 Artisan Command ifnex:import:shipments انجام شد

بخش ۷: پیکربندی

# کار وضعیت توضیحات
8.1 config/ifnex.php انجام شد تنظیمات اختصاصی
8.2 config/cors.php انجام شد
8.3 .env.example به‌روز انجام شد IFNEX_API_KEY, CORS_ALLOWED_ORIGINS, ...
8.4 سوییچ به Laravel 11 انجام شد Downgrade از v12 به v11
8.5 نصب morilog/jalali v3 انجام شد
8.6 رفع خطای PSR-4 انجام شد SettingsPage.php
8.7 رفع خطای MethodNotAllowedHttpException انجام شد POST /admin/login

بخش ۸: Code Review

# کار وضعیت توضیحات
9.1 بررسی bootstrap/app.php انجام شد مشکل: گروه web تعریف نشده
9.2 بررسی AdminPanelProvider.php انجام شد Middlewareهای طولانی به صورت دستی
9.3 بررسی composer.json انجام شد صحیح است
9.4 بررسی Routes انجام شد کافی برای حال حاضر
9.5 ارائه راه‌حل برای مشکلات انجام شد راه‌حل در STATUS.md ثبت شد

بخش ۹: بلاک‌های فعلی

# مشکل اولویت وضعیت راه‌حل
B1 فایل اکسل List فقط ۲ ردیف داده واقعی دارد 🔴 بالا بلاک دریافت فایل اصلی کامل از مشتری
B2 گروه web در bootstrap/app.php تعریف نشده 🔴 بالا بلاک اضافه کردن $middleware->group('web', [...])
B3 فایل اکسل ترکینگ (Sheet1 + Refrence) موجود نیست 🟡 متوسط بلاک دریافت از مشتری
B4 پلاگین وردپرس IFNEX Bridge ساخته نشده 🟡 متوسط نشده بعد از تست کامل API
B5 تست دستی کامل Filament انجام نشده 🟡 متوسط نشده بعد از رفع B2

بخش ۱۰: کارهای باقی‌مانده فاز ۰

# کار اولویت وضعیت یادداشت
R1 رفع مشکل middleware web group 🔴 بالا نیاز به اصلاح اولویت اول
R2 ساده کردن AdminPanelProvider.php 🔴 بالا نیاز به اصلاح بعد از R1
R3 تست دستی کامل Filament 🔴 بالا pending ورود + CRUD + RelationManagers
R4 دریافت فایل اکсел اصلاح‌شده List 🔴 بالا بلاک بدون این فایل، R5 امکان‌پذیر نیست
R5 مهاجرت ۳۹۵۰ رکورد تاریخی 🔴 بالا بلاک منتظر R4
R6 مهاجرت داده‌های ترکینگ دستی 🟡 متوسط بلاک منتظر فایل اکسل ترکینگ
R7 ساخت پلاگین وردپرس IFNEX Bridge 🟡 متوسط pending بعد از R3
R8 تست کامل API Track با داده‌های واقعی 🟡 متوسط pending بعد از R5
R9 تست نهایی فاز ۰ و تحویل به مشتری 🟢 پایین pending بعد از تأیید همه موارد بالا

بخش ۱۱: کارهای فاز ۱ (پس از تأیید فاز ۰)

# کار اولویت وضعیت
F1.1 تست کامل PriceCalculatorService با داده‌های واقعی 🔴 بالا pending
F1.2 تکمیل جدول shipping_rates 🟡 متوسط ۴۰۴ رکورد import شد
F1.3 فرم ثبت سفارش آنلاین با ۹ ردیف کالای گمرکی 🟡 متوسط pending
F1.4 تولید PDF: AWB، INVOICE، Label 🟡 متوسط pending
F1.5 ماژول ایمپورت اکسل تعرفه‌ها 🟢 پایین pending
F1.6 صفحه استعلام قیمت واقعی 🟢 پایین pending

بخش ۱۲: کارهای فاز ۲ و ۳ (مرجع)

فاز ۲: اتوماسیون مالی

  • اتصال به درگاه پرداخت (زرین‌پال)
  • ایجاد جدول کیف پول و تراکنش‌ها
  • شارژ اعتبار آنلاین و دستی
  • کرون‌جاب بروزرسانی نرخ ارز
  • سیستم کوپن و تخفیف‌ها
  • فرمول محاسبه قیمت رقبا

فاز ۳: رهگیری زنده و عملیات

  • راه‌اندازی VPS پل خارج (هلند/آلمان)
  • اتصال به TrackingMore/17track API
  • سیستم وب‌هوک
  • مپ کردن کدهای رهگیری
  • داشبورد مالی
  • فرم نظرسنجی و رضایت مشتری
  • پنل کاربری مشتریان در وردپرس

Legend

آیکون معنی
انجام شده
🔄 در حال انجام
⚠️ جزئی/ناقص/بلاک
لغو شده/خراب
⏸️ متوقف/منتظر
🔴 بالا اولویت بالا
🟡 متوسط اولویت متوسط
🟢 پایین اولویت پایین

نحوه استفاده از این فایل

۱. در ابتدای هر جلسه: این فایل را باز کنید و موارد pending را بررسی کنید. ۲. بعد از انجام هر کار: شماره کار را پیدا کنید و وضعیت را به‌روز کنید. ۳. اگر بلاک جدیدی ایجاد شد: در بخش «بلاک‌های فعلی» اضافه کنید. ۴. اگر نیاز به Code Review دارید: بخش ۹ را بررسی کنید.


© 2026 VernaSoft Group. Internal use only.