ifnex/01_Documents/IFNEX_Pro_Backlog.md
Kazem Alghasi cf7b76b707 docs: update AGENT.md, CLIENT_DELIVERY.md, README.md, IFNEX_Pro_Backlog.md for phase 3.7
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.
2026-10-30 00:33:42 +03:30

5.5 KiB
Raw Blame History

IFNEX Pro Version — Feature Backlog

این فایل شامل فیچرهایی است که برای نسخه Pro (پولی) برنامه‌ریزی شده‌اند. هر مورد با برچسب نسخه و اولویت مشخص شده است. تاریخ ایجاد: ۲۰۲۶-۱۰-۲۹ آخرین به‌روزرسانی: ۲۰۲۶-۱۰-۳۰


📝 خلاصه وضعیت (۲۰۲۶-۱۰-۳۰)

فاز ۳.۷ پایه (IRR-only) کامل شد. فیچرهای زیر برای نسخه Pro نگه داشته شده‌اند:

# فیچر اولویت وابستگی
۱ ارز مرجع قابل تنظیم 🔴 بالا بازنویسی ExchangeRateService و PriceCalculatorService
۲ دفترچه آدرس (Address Book) 🟡 متوسط مدل + API + UI وردپرس
۳ پلاگین SMS به‌صورت ماژول 🟡 متوسط منتظر پنل SMS مشتری
۴ سیستم لایسنس (Domain Lock) 🔴 بالا سرور لایسنس مرکزی
۵ بروزرسانی خودکار از گیت 🟡 متوسط نسخه‌بندی SemVer

پیش‌نیاز ارز مرجع قابل تنظیم (مهم‌ترین فیچر Pro)

برای پیاده‌سازی این فیچر، باید:

  1. فیلد base_currency در System Settings اضافه شود
  2. ستون rate_to_rial در currencies به rate_to_base تغییر نام کند
  3. ستون currency در rate_entries به ارز مرجع تغییر کند
  4. ExchangeRateService و PriceCalculatorService بازنویسی شوند
  5. 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 در تاریخ ۲۰۲۶-۱۰-۲۹ ایجاد شد. در جلسات آینده با کارفرما باید هر فیچر به‌صورت جداگانه طراحی شود.