feat: Update changelog and documentation for version 2.7, including Commission Data Flow Fix, UI improvements, and terminology cleanup

This commit is contained in:
masoodafar-web
2025-12-29 00:40:13 +03:30
parent 4f999033bd
commit df650c3886
3 changed files with 282 additions and 22 deletions
+10 -3
View File
@@ -1,7 +1,7 @@
# 📚 FourSat Project - فهرست جامع مستندات
> **نسخه**: 2.6
> **آخرین بروزرسانی**: ۷ دی ۱۴۰۴ (December 27, 2025)
> **نسخه**: 2.7
> **آخرین بروزرسانی**: ۹ دی ۱۴۰۴ (December 29, 2025)
> **وضعیت**: ✅ تجمیع و بازسازی کامل
---
@@ -38,7 +38,14 @@
| **BackOffice UI** | ✅ Production Ready | 100% | [`04-FRONTEND/BackOffice/ui-status.md`](04-FRONTEND/BackOffice/ui-status.md) |
| **FrontOffice UI** | 🚧 In Progress | 75% | [`04-FRONTEND/FrontOffice/README.md`](04-FRONTEND/FrontOffice/README.md) |
### آخرین دستاوردها (۷ دی):
### آخرین دستاوردها (۹ دی):
-**Commission Carryover Fix**: رفع مشکل نمایش 0 برای carryover در weekly-balance
-**WeekSelector Autocomplete**: انتخابگر هفته با جستجو در داشبورد کمیسیون
-**Responsive Commission Pages**: بهبود UI با MudGrid و Summary Stats
-**Merged Dashboard/History**: ادغام دو صفحه تکراری با dual routing
-**Terminology Cleanup**: جایگزینی کلمات MLM-حساس (کمیسیون→پاداش، شبکه→تیم)
### دستاوردهای ۷ دی:
-**SystemConstants**: انتقال مقادیر hardcode (56M) به کلاس مرکزی
-**SmsTemplates**: متمرکز کردن همه قالب‌های پیامک در یک فایل
-**Daya Loan SMS**: ارسال پیامک خودکار هنگام تأیید وام دایا
+56 -19
View File
@@ -2,11 +2,49 @@
> **FrontOffice**: رابط کاربری Blazor Server برای مشتریان نهایی سیستم FourSat
>
> **آخرین بروزرسانی**: ۶ دی ۱۴۰۴ (26 دسامبر 2025)
> **آخرین بروزرسانی**: ۹ دی ۱۴۰۴ (29 دسامبر 2025)
---
## 🆕 تغییرات اخیر (۶ دی ۱۴۰۴)
## 🆕 تغییرات اخیر (۹ دی ۱۴۰۴)
### ✅ Commission Data Flow Fix
- **مشکل**: صفحه weekly-balance مقادیر carryover را 0 نشان می‌داد
- **حل**: استفاده از مقادیر واقعی سرور به جای محاسبه محلی
- **فایل‌ها**:
- `CommissionService.cs` - استفاده از `balance.LeftLegCarryover`
- `CommissionDtos.cs` - Properties جدید carryover و new_members
### ✅ WeekSelector Autocomplete
- **کامپوننت**: `MudAutocomplete` برای انتخاب هفته
- **قابلیت**: جستجو در لیست هفته‌ها
- **صفحه**: `CommissionDashboardPage.razor`
### ✅ Responsive UI Improvements
- **MudGrid**: استفاده از breakpoints (`xs`, `sm`, `md`)
- **Summary Stats**: کارت‌های آماری در بالای صفحه
- **MudHidden**: جدول در دسکتاپ، کارت در موبایل
### ✅ Merged Dashboard & History Pages
- **قبل**: دو صفحه جداگانه تکراری
- **بعد**: یک صفحه با dual routing
- **فایل حذف شده**: `CommissionHistoryPage.razor[.cs]`
### ✅ Terminology Cleanup (MLM-Sensitive Words)
جایگزینی کلمات حساس:
| قبلی | جدید |
|------|------|
| کمیسیون | پاداش |
| شبکه‌سازی | تیم‌سازی |
| مشاهده شبکه | مشاهده تیم |
| آمار شبکه | آمار تیم |
| شبکه‌های فروش | تیم‌های فروش |
**فایل‌های تغییر یافته**: WeeklyBalancePage, CommissionDashboardPage, MyPackages, Packages, Index, About, Footer, NetworkStatisticsPage
---
## 🆕 تغییرات قبلی (۶ دی ۱۴۰۴)
### ✅ نمایش کد معرف در درخت شبکه
- **کد معرف**: نمایش ReferralCode برای کاربران فعال باشگاه
@@ -80,17 +118,16 @@ FrontOffice/
│ │ │ ├── MembershipPage.razor
│ │ │ ├── FeaturesPage.razor
│ │ │ └── Components/ActivationSection.razor
│ │ ├── Network/ # ✅ شبکه (2 صفحه)
│ │ ├── Network/ # ✅ تیم (2 صفحه)
│ │ │ ├── NetworkStatisticsPage.razor
│ │ │ └── (Tree در Profile است)
│ │ └── Commission/ # ✅ کمیسیون (3 صفحه)
│ │ ├── CommissionDashboardPage.razor
│ │ ├── CommissionHistoryPage.razor
│ │ └── Commission/ # ✅ پاداش (2 صفحه)
│ │ ├── CommissionDashboardPage.razor # dual: /dashboard + /history
│ │ └── WeeklyBalancePage.razor
│ └── Utilities/ # Services & DTOs
│ ├── ClubMembershipService.cs # ⚠️ Mock Data
│ ├── NetworkMembershipService.cs # ⚠️ Mock Data
│ ├── CommissionService.cs # ⚠️ Mock Data
│ ├── CommissionService.cs # ✅ Real Data
│ └── WalletService.cs # ⚠️ 4 متد کامنت شده
└── FrontOffice.BFF/ # Backend for Frontend
├── FrontOffice.BFF.sln
@@ -170,26 +207,26 @@ FrontOffice/
- MudChart.Donut برای توزیع
- کارت آخرین عضو (آواتار، موقعیت، تاریخ)
### 💰 Commission (3 صفحه) - **جدید** ✨
-**CommissionDashboardPage.razor**: داشبورد پرداخت‌ها
- فیلترهای هفته و وضعیت
### 💰 Commission (2 صفحه) - **بروزرسانی ۹ دی** ✨
-**CommissionDashboardPage.razor**: داشبورد پاداش‌ها (merged با History)
- **Dual routing**: `/commission/dashboard` + `/commission/history`
- **WeekSelector Autocomplete**: انتخابگر هفته با جستجو
- **Summary Stats Cards**: کل پاداش، پرداخت شده، در انتظار، میانگین
- جدول + نمای موبایل (MudHidden responsive)
- Pagination با MudPagination
- لینک به صفحات تاریخچه و تعادل هفتگی
-**CommissionHistoryPage.razor**: تاریخچه کامل پرداخت‌ها
- کارت‌های خلاصه (مجموع، تعداد هفته، میانگین)
- جدول کامل با FixedHeader
- لینک به جزئیات تعادل هر هفته
- لینک به صفحه تعادل هفتگی
-**WeeklyBalancePage.razor**: جزئیات تعادل هفتگی
- انتخابگر هفته با دکمه "هفته جاری"
- کارت‌های تعادل چپ/راست با Progress bar
- پنل محاسبات (Min balance, Count, Commission)
- کارت‌های تعادل تیم اول/دوم با Progress bar
- **Carryover Breakdown**: نمایش اعضای جدید + انتقال از هفته قبل
- پنل محاسبات (Min balance, Count, پاداش)
- هشدار Carryover (اگر باشد)
- MudChart.Bar مقایسه چپ/راست/Min
- MudChart.Bar مقایسه تیم اول/دوم/Min
- پشتیبانی Query parameter (?week=45)
-**CommissionHistoryPage.razor**: حذف شده (merged با Dashboard)
---
## 🛠️ Services (8 سرویس)
+216
View File
@@ -0,0 +1,216 @@
# 📝 Changelog - ۹ دی ۱۴۰۴ (29 December 2025)
> **Session**: Commission Data Flow Fix + UI Improvements + Terminology Cleanup (MLM-sensitive words)
---
## 🎯 خلاصه Session
این session شامل موارد زیر بود:
1. **Commission Carryover Data Flow** - رفع مشکل نمایش 0 برای carryover در صفحه weekly-balance
2. **WeekSelector Autocomplete** - افزودن انتخابگر هفته به صفحه داشبورد کمیسیون
3. **Responsive Commission Pages** - بهبود رسپانسیو صفحات با MudGrid
4. **Merge Dashboard & History Pages** - ادغام دو صفحه تکراری کمیسیون
5. **Terminology Cleanup** - جایگزینی کلمات حساس MLM با معادل‌های خنثی
---
## ✨ تغییرات
### 1. 💰 Commission Carryover Data Flow ✅
**مشکل**: صفحه `weekly-balance` مقادیر carryover را همیشه 0 نشان می‌داد در حالی که API مقادیر صحیح برمی‌گرداند.
**علت**: FrontOffice client carryover را خودش محاسبه می‌کرد به جای استفاده از مقادیر سرور.
**فایل‌های تغییر یافته**:
| فایل | تغییر |
|------|-------|
| `FrontOffice.BFF/commission.proto` | افزودن fields 11-14: carryover و new_members |
| `FrontOffice.BFF/CommissionProfile.cs` | Mapping جدید برای carryover fields |
| `FrontOffice/CommissionDtos.cs` | Properties جدید: LeftCarryover, RightCarryover, LeftNewMembers, RightNewMembers |
| `FrontOffice/CommissionService.cs` | استفاده از مقادیر واقعی سرور به جای محاسبه محلی |
**Proto Fields جدید**:
```protobuf
message WeeklyBalanceResponse {
// ... existing fields ...
int32 left_leg_carryover = 11;
int32 right_leg_carryover = 12;
int32 left_leg_new_members = 13;
int32 right_leg_new_members = 14;
}
```
---
### 2. 🎯 WeekSelector Autocomplete ✅
**نیاز**: انتخاب آسان هفته‌ها در صفحه داشبورد کمیسیون به جای dropdown ساده.
**پیاده‌سازی**:
```razor
<MudAutocomplete T="WeekSelectorItem"
Label="انتخاب هفته"
@bind-Value="_selectedWeek"
SearchFunc="SearchWeeks"
ToStringFunc="@(w => w?.DisplayName ?? "")"
Variant="Variant.Outlined"
Dense="true" />
```
**فایل**: `FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor`
---
### 3. 📱 Responsive Commission Pages ✅
**تغییرات UI**:
- استفاده از `MudGrid` با breakpoints مناسب (`xs`, `sm`, `md`)
- `MudHidden` برای نمایش/مخفی کردن المان‌ها در موبایل/دسکتاپ
- کارت‌های آماری (Summary Stats) در بالای صفحه
- جدول در دسکتاپ، کارت در موبایل
**Summary Stats Cards**:
```razor
<MudGrid Spacing="2" Class="mb-4">
<MudItem xs="6" sm="3">
<MudPaper Class="pa-3 text-center" Elevation="2">
<MudText Typo="Typo.h5" Color="Color.Primary">@TotalCommissions.ToString("N0")</MudText>
<MudText Typo="Typo.caption">کل پاداش‌ها</MudText>
</MudPaper>
</MudItem>
<!-- ... more stats ... -->
</MudGrid>
```
---
### 4. 🔀 Merge Dashboard & History Pages ✅
**قبل**: دو صفحه جداگانه با functionality تکراری
- `/commission/dashboard` - داشبورد با فیلتر
- `/commission/history` - تاریخچه با pagination
**بعد**: یک صفحه واحد با dual routing
```csharp
@attribute [Route(RouteConstants.Commission.Dashboard)]
@attribute [Route(RouteConstants.Commission.History)]
```
**فایل‌های حذف شده**:
- `CommissionHistoryPage.razor`
- `CommissionHistoryPage.razor.cs`
**فایل نهایی**: `CommissionDashboardPage.razor` با تمام قابلیت‌ها
---
### 5. 📝 Terminology Cleanup (MLM-Sensitive Words) ✅
**هدف**: جایگزینی کلمات حساس MLM با معادل‌های خنثی برای جلوگیری از حساسیت مشتریان.
#### جایگزینی‌های انجام شده:
| کلمه قبلی | کلمه جدید | توضیح |
|-----------|-----------|-------|
| کمیسیون | **پاداش** | Commission → Reward |
| شبکه‌سازی | **تیم‌سازی** | Network Building → Team Building |
| شبکه‌های فروش | **تیم‌های فروش** | Sales Networks → Sales Teams |
| مشاهده شبکه | **مشاهده تیم** | View Network → View Team |
| آمار شبکه | **آمار تیم** | Network Stats → Team Stats |
| رشد میانگین شبکه | **رشد میانگین تیم** | Network Growth → Team Growth |
#### فایل‌های تغییر یافته:
| فایل | تغییرات |
|------|---------|
| `WeeklyBalancePage.razor` | کمیسیون → پاداش |
| `CommissionDashboardPage.razor` | کمیسیون → پاداش، PageTitle |
| `MyPackages.razor` | کمیسیون → پاداش، مشاهده شبکه → مشاهده تیم |
| `Packages.razor` | کمیسیون → پاداش |
| `Index.razor` | شبکه‌سازی → تیم‌سازی، رشد میانگین شبکه → تیم |
| `About.razor` | شبکه‌سازی → تیم‌سازی، شبکه‌های فروش → تیم‌های فروش |
| `Footer.razor` | شبکه‌های فروش → تیم‌های فروش |
| `NetworkStatisticsPage.razor` | آمار شبکه → آمار تیم |
#### کلمات بدون تغییر (صحیح هستند):
| کلمه | دلیل عدم تغییر |
|------|---------------|
| شبکه‌های اجتماعی | Social Networks - مرتبط با MLM نیست |
| درخت دسته‌بندی‌ها | Category Tree - مرتبط با MLM نیست |
| درخت شبکه (BackOffice) | پنل ادمین - نیاز به صراحت دارد |
| زیرمجموعه (BackOffice) | پنل ادمین - نیاز به صراحت دارد |
---
## 📁 فایل‌های تغییر یافته
### FrontOffice.BFF:
```
src/FrontOffice.BFF.Domain/Domain.csproj # CMS proto v0.0.162
src/BackOffice.BFF.Application/.../CommissionProfile.cs # Carryover mapping
src/Protobufs/commission.proto # Fields 11-14
```
### FrontOffice Client:
```
src/FrontOffice.Main/FrontOffice.Main.csproj # Commission.Protobuf v0.0.6
src/FrontOffice.Main/Utilities/CommissionDtos.cs # New properties
src/FrontOffice.Main/Utilities/CommissionService.cs # Server values
src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor # Merged + Responsive
src/FrontOffice.Main/Pages/Commission/CommissionDashboardPage.razor.cs # Dual routes
src/FrontOffice.Main/Pages/Commission/WeeklyBalancePage.razor # UI + Terminology
src/FrontOffice.Main/Pages/Package/MyPackages.razor # Terminology
src/FrontOffice.Main/Pages/Store/Packages.razor # Terminology
src/FrontOffice.Main/Pages/Index.razor # Terminology
src/FrontOffice.Main/Pages/About.razor # Terminology
src/FrontOffice.Main/Pages/Network/NetworkStatisticsPage.razor # Terminology
src/FrontOffice.Main/Shared/Footer.razor # Terminology
```
### فایل‌های حذف شده:
```
src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor ❌
src/FrontOffice.Main/Pages/Commission/CommissionHistoryPage.razor.cs ❌
```
---
## 🧪 تست و تأیید
- ✅ صفحه weekly-balance مقادیر صحیح carryover نمایش می‌دهد
- ✅ WeekSelector در داشبورد کار می‌کند
- ✅ صفحات در موبایل responsive هستند
- ✅ هر دو route به یک صفحه می‌روند
- ✅ همه terminology ها تغییر کرده‌اند
---
## 📋 لیست کلمات MLM-حساس (مرجع)
برای آینده، این کلمات در UI مشتری باید با دقت استفاده شوند:
| کلمه حساس | جایگزین پیشنهادی | وضعیت |
|-----------|-----------------|-------|
| کمیسیون | پاداش | ✅ انجام شد |
| شبکه‌سازی | تیم‌سازی | ✅ انجام شد |
| شبکه (در context MLM) | تیم | ✅ انجام شد |
| زیرمجموعه | اعضای تیم | ⏸️ فقط BackOffice |
| درخت شبکه | نمودار سازمانی | ⏸️ فقط BackOffice |
| شاخه چپ/راست | تیم اول/دوم | ✅ قبلاً انجام شده |
| تعادل | امتیاز/جفت | ✅ قبلاً انجام شده |
| سقف | حداکثر | ✅ قبلاً انجام شده |
| Downline | اعضا | ⏸️ فقط BackOffice |
| Binary Tree | ساختار تیم | ⏸️ فقط BackOffice |
---
## 🔗 Related Files
- [`CHANGELOG-2025-12-27.md`](CHANGELOG-2025-12-27.md) - Session قبلی
- [`04-FRONTEND/FrontOffice/README.md`](04-FRONTEND/FrontOffice/README.md) - مستندات FrontOffice
- [`01-BUSINESS/network-commission-system.md`](01-BUSINESS/network-commission-system.md) - منطق تجاری کمیسیون