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.
130 lines
5.5 KiB
Markdown
130 lines
5.5 KiB
Markdown
# 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`:
|
||
|
||
```php
|
||
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 در تاریخ ۲۰۲۶-۱۰-۲۹ ایجاد شد.
|
||
> در جلسات آینده با کارفرما باید هر فیچر بهصورت جداگانه طراحی شود.
|