Phase 3.7 (Currency refactor + Manual invoices) is now complete. Update all project documentation to reflect: - AGENT.md 1.4: add IRR-only architecture section (4.13), wallet-centric architecture section (4.14), manual invoices (4.14), 4-quadrant rates (4.15). Add currency red lines to section 7. Restructure section 9 (remaining work) into 3.6 (done), 3.7 (done), 3.8 (future). - CLIENT_DELIVERY.md: header updated to phase 3.7 complete. Add section 15.2 with all phase 3.7 deliverables. Update 15.3 remaining list with future Pro features. - README.md: add IRR-only, 4-quadrant, manual invoices to key features. Add phase 3.7 section (100% complete). - IFNEX_Pro_Backlog.md: add summary table for 5 Pro features, plus prerequisites section for configurable base currency. Wallet-centric architecture confirmed: all 4 payment paths (order, invoice, credit settlement, deposit) flow through the wallet, with 6 transaction types. Race conditions handled with lockForUpdate.
5.5 KiB
IFNEX Pro Version — Feature Backlog
این فایل شامل فیچرهایی است که برای نسخه Pro (پولی) برنامهریزی شدهاند. هر مورد با برچسب نسخه و اولویت مشخص شده است. تاریخ ایجاد: ۲۰۲۶-۱۰-۲۹ آخرین بهروزرسانی: ۲۰۲۶-۱۰-۳۰
📝 خلاصه وضعیت (۲۰۲۶-۱۰-۳۰)
فاز ۳.۷ پایه (IRR-only) کامل شد. فیچرهای زیر برای نسخه Pro نگه داشته شدهاند:
| # | فیچر | اولویت | وابستگی |
|---|---|---|---|
| ۱ | ارز مرجع قابل تنظیم | 🔴 بالا | بازنویسی ExchangeRateService و PriceCalculatorService |
| ۲ | دفترچه آدرس (Address Book) | 🟡 متوسط | مدل + API + UI وردپرس |
| ۳ | پلاگین SMS بهصورت ماژول | 🟡 متوسط | منتظر پنل SMS مشتری |
| ۴ | سیستم لایسنس (Domain Lock) | 🔴 بالا | سرور لایسنس مرکزی |
| ۵ | بروزرسانی خودکار از گیت | 🟡 متوسط | نسخهبندی SemVer |
پیشنیاز ارز مرجع قابل تنظیم (مهمترین فیچر 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)
- ذخیره فرستنده/گیرندههای قبلی
- انتخاب از لیست در فرم سفارش
- مدیریت در پورتال مشتری
فیچر ۳: پلاگین SMS بهصورت ماژول
- فعالسازی بهصورت add-on
- پشتیبانی از چندین سرویسدهنده (Kavenegar, MeliPayamak, ...)
- پلنهای جداگانه در مدل تجاری
فیچر ۴: سیستم لایسنس (Domain Lock + Feature Flags)
- مدل: License Key + Domain Lock
- Feature Flags برای فعالسازی پلنهای Starter/Business/Enterprise
- سرور لایسنس مرکزی
فیچر ۵: بروزرسانی خودکار از گیت
- نسخهبندی سمنتیک (SemVer)
- آپدیت از گیت با تأیید مدیر
- بکاپ قبل از آپدیت
این فایل توسط Z.ai در تاریخ ۲۰۲۶-۱۰-۲۹ ایجاد شد. در جلسات آینده با کارفرما باید هر فیچر بهصورت جداگانه طراحی شود.