ifnex/01_Documents/IFNEX_Pro_Backlog.md

3.9 KiB
Raw Blame History

IFNEX Pro Version — Feature Backlog

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


🔧 فیچر ۱: ارز مرجع قابل تنظیم (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 در تاریخ ۲۰۲۶-۱۰-۲۹ ایجاد شد. در جلسات آینده با کارفرما باید هر فیچر به‌صورت جداگانه طراحی شود.