This commit marks the completion of phase 3.11 (UAT Ready) and includes significant updates to deployment automation, testing, and documentation. Key changes: - Implement `ifnex:smoke-test` command for E2E post-deployment validation - Implement `ifnex:preflight` command for environment audit before migration - Implement `ifnex:import-fx-rates` for automated multi-source currency rate imports (Exir.io and FreeCurrencyAPI) - Update `CurrencySeeder` to support base currencies (USD, AED, EUR, CNY, IRR) - Enhance `IfnexSmokeTest` with improved environment-aware checks and robust HTTP mocking in tests - Update project documentation (Roadmap, README, AGENT, Handoff) to reflect completed phases 3.7 through 3.11 - Add UAT checklist and installation guides for recent hotfixes - Update project statistics (models, migrations, endpoints, and test counts)
6.1 KiB
IFNEX Pro Version — Feature Backlog
این فایل شامل فیچرهایی است که برای نسخه Pro (پولی) برنامهریزی شدهاند. هر مورد با برچسب نسخه و اولویت مشخص شده است. تاریخ ایجاد: ۲۰۲۶-۱۰-۲۹ آخرین بهروزرسانی: ۲۰۲۶-۱۱-۰۱
📝 خلاصه وضعیت (۲۰۲۶-۱۱-۰۱)
فازهای ۳.۷ تا ۳.۱۱ کامل شدند. فیچرهای زیر برای نسخه Pro نگه داشته شدهاند:
| # | فیچر | اولویت | وابستگی |
|---|---|---|---|
| ۱ | ارز مرجع قابل تنظیم | 🔴 بالا | بازنویسی ExchangeRateService و PriceCalculatorService |
| ۲ | پلاگین SMS بهصورت ماژول | 🟡 متوسط | منتظر پنل SMS مشتری |
| ۳ | سیستم لایسنس (Domain Lock) | 🔴 بالا | سرور لایسنس مرکزی |
| ۴ | بروزرسانی خودکار از گیت | 🟡 متوسط | نسخهبندی SemVer |
✅ فیچر «دفترچه آدرس (Address Book)» در فاز ۳.۹ (۲۰۲۶-۱۱-۰۱) بهعنوان فیچر استاندارد پیادهسازی شد و از این لیست حذف گردید. مدل
AddressBookEntry+ CRUD API + dropdown در فرم سفارش + تب پنل کاربری + ۱۸ تست Feature.
پیشنیاز ارز مرجع قابل تنظیم (مهمترین فیچر Pro)
برای پیادهسازی این فیچر، باید:
- فیلد
base_currencyدر System Settings اضافه شود - ستون
rate_to_rialدرcurrenciesبهrate_to_baseتغییر نام کند - ستون
currencyدرrate_entriesبه ارز مرجع تغییر کند ExchangeRateServiceوPriceCalculatorServiceبازنویسی شوند- PDF فاکتورها بر مبنای ارز مرجع نمایش داده شوند
بیشترین کار روی Models/Services و Migrations خواهد بود. UI تقریباً تغییر نمیکند چون همه چیز از قبل IRR-only شده.
🔧 فیچر ۱: ارز مرجع قابل تنظیم (Configurable Base Currency)
وضعیت: 📋 مطرحشده — برای نسخه Pro
توضیح:
در نسخه فعلی، ارز مبنا (Base Currency) بهصورت hard-code شده به ریال ایران (IRR). این برای مشتریان ایرانی مناسب است، ولی اگر مشتری خارجی (مثلاً اروپایی) بخواهد از IFNEX استفاده کند، باید محاسبات بر مبنای یورو انجام شود.
پیشنهاد پیادهسازی:
۱. تنظیم در پنل ادمین:
در System Settings یک فیلد جدید اضافه شود:
base_currency— کد ارز مرجع (مثلاً IRR, EUR, USD, AED)- پیشفرض: IRR
۲. تغییر در دیتابیس:
جدول currencies:
- ستون
rate_to_rial→ تغییر نام بهrate_to_base - هر ارز نرخ نسبت به ارز مرجع ذخیره میشود
جدول rate_entries:
- ستون
currencyبه ارز مرجع تغییر میکند - مثلاً اگه base=EUR، همه نرخها به EUR ذخیره میشوند
۳. تغییر در ExchangeRateService:
public function getBaseCurrency(): string
{
return SystemSetting::get('base_currency', 'IRR');
}
public function convertToBase(float $amount, string $fromCurrency): float
{
$baseCurrency = $this->getBaseCurrency();
if ($fromCurrency === $baseCurrency) return $amount;
$rate = Currency::where('code', $fromCurrency)->value('rate_to_base');
return $amount * $rate;
}
۴. تغییر در PriceCalculatorService:
- همه ارجاعات به IRR با ارز مرجع جایگزین شود
- نمایش در پورتال مشتری هم با ارز مرجع
۵. تأثیر روی فاکتورها و گزارشها:
- PDF فاکتورها باید ارز مرجع رو نشون بدن
- گزارشهای مالی بر مبنای ارز مرجع
- امکان نمایش معادل ارز دیگر (مثلاً معادل یورو و دلار)
مزایا:
- ✅ پشتیبانی از مشتریان بینالمللی
- ✅ انعطاف در انتخاب ارز محاسباتی
- ✅ White-label friendly
چالشها:
- ⚠️ تغییر اسکیمای دیتابیس (نیازمند migration)
- ⚠️ بازنویسی بخشهای مالی سیستم
- ⚠️ تست مجدد همه فلوی پرداخت
اولویت: 🔴 بالا (نسخه Pro)
📝 یادآوریهای دیگر (در این چت مطرح شد)
✅ فیچر ۲: دفترچه آدرس (Address Book) — تحویلشده در فاز ۳.۹
این فیچر در فاز ۳.۹ (۲۰۲۶-۱۱-۰۱) بهعنوان فیچر استاندارد پیادهسازی شد و دیگر Pro نیست.
- ✅ مدل
AddressBookEntry+ جدولaddress_book_entries- ✅ CRUD API محافظتشده با Sanctum + بررسی مالکیت
- ✅ Dropdown در فرم سفارش + چکباکس «ذخیره این آدرس»
- ✅ تب «دفترچه آدرس» در پنل کاربری وردپرس
- ✅ ۱۸ تست Feature
فیچر ۳: پلاگین SMS بهصورت ماژول
- فعالسازی بهصورت add-on
- پشتیبانی از چندین سرویسدهنده (Kavenegar, MeliPayamak, ...)
- پلنهای جداگانه در مدل تجاری
فیچر ۴: سیستم لایسنس (Domain Lock + Feature Flags)
- مدل: License Key + Domain Lock
- Feature Flags برای فعالسازی پلنهای Starter/Business/Enterprise
- سرور لایسنس مرکزی
فیچر ۵: بروزرسانی خودکار از گیت
- نسخهبندی سمنتیک (SemVer)
- آپدیت از گیت با تأیید مدیر
- بکاپ قبل از آپدیت
این فایل توسط Z.ai در تاریخ ۲۰۲۶-۱۰-۲۹ ایجاد شد. در جلسات آینده با کارفرما باید هر فیچر بهصورت جداگانه طراحی شود.