feat: Update CURRENT-SPRINT.md with progress and task completion details
- Added last updated date and refined project status for Backend and Frontend. - Updated completion percentages for FrontOffice UI and BFF. - Documented completed tasks for BackOffice in the current sprint. - Added new high-priority tasks related to commission calculation fixes. - Resolved blockers and minor issues, providing a clearer progress summary. docs: Create commission-calculation-fix.md for weekly commission calculation analysis - Documented critical issues affecting commission calculations. - Provided a detailed plan for fixing the commission calculation logic. - Included code analysis, affected files, and step-by-step tasks for implementation. - Outlined the expected timeline and important notes regarding changes.
This commit is contained in:
+240
-162
@@ -76,7 +76,7 @@ strong {
|
||||
}
|
||||
</style>
|
||||
|
||||
> **تاریخ بهروزرسانی**: 1403/09/14 (2024-12-04)
|
||||
> **تاریخ بهروزرسانی**: 1403/10/06 (2024-12-26)
|
||||
> **وضعیت کلی**: 99% تکمیل شده
|
||||
> **مسیر توسعه**: CMS → BackOffice.BFF → BackOffice (UI) → FrontOffice.BFF → FrontOffice
|
||||
|
||||
@@ -87,21 +87,21 @@ strong {
|
||||
### ✅ تکمیل شده
|
||||
- **CMS Microservice**: 95% (12 از 12 Phase کامل، 9 TODO handlers باقیمانده)
|
||||
- **BackOffice.BFF**: 85% (47 Handler تکمیل، 8 TODO handlers، 19 Discount Shop handlers باقیمانده)
|
||||
- **BackOffice UI**: 85% (56 صفحه آماده Production - قابل تحویل به Admin)
|
||||
- **FrontOffice.BFF**: 20% (فقط برخی Queries پایه)
|
||||
- **FrontOffice UI**: 10% (چند صفحه اولیه)
|
||||
- **BackOffice UI**: 95% (60 صفحه آماده Production - قابل تحویل به Admin)
|
||||
- **FrontOffice.BFF**: 80% ✅ (Proto Projects + Handlers متصل به CMS)
|
||||
- **FrontOffice UI**: 60% ✅ (Mock Services → gRPC تبدیل شده)
|
||||
|
||||
### 🔴 اولویتهای اصلی (باید انجام شوند)
|
||||
1. ~~تکمیل Payment Gateway Integration (CMS Phase 10)~~ ✅ Backend Complete (85%)
|
||||
1. ~~تکمیل Payment Gateway Integration (CMS Phase 10)~~ ✅ Backend Complete (90%)
|
||||
- ✅ DayaPaymentService پیادهسازی کامل
|
||||
- ✅ GetWithdrawalReports Query (CMS + BackOffice.BFF)
|
||||
- ⏸️ CMS gRPC Service + BackOffice UI باقیمانده
|
||||
- ✅ GetWithdrawalReports Query (CMS + BackOffice.BFF + gRPC Service)
|
||||
- ⏸️ BackOffice UI (Withdrawal Management + Reports تقریباً کامل؛ تستهای Daya و خروجی PDF باقیمانده)
|
||||
2. ~~Club Discount Shop System (CMS Phase 9)~~ ✅ Complete
|
||||
3. ~~Product Bulk Operations~~ ✅ Backend Complete (100%)
|
||||
4. ~~Order Management~~ ✅ Proto/gRPC/Mapster Complete (9 TODO handlers باقیمانده)
|
||||
5. ~~Public Messages System~~ ✅ Proto/gRPC Complete (5 TODO handlers باقیمانده)
|
||||
4. ~~Order Management~~ ✅ Backend + BackOffice.BFF Complete (UI improvements باقیمانده)
|
||||
5. ~~Public Messages System~~ ✅ CMS + BackOffice.BFF + BackOffice UI Complete
|
||||
6. **Package Purchase System** ✅ Proto/gRPC Complete (4 TODO handlers باقیمانده)
|
||||
7. **Discount Shop - BackOffice Integration** 🔴 **اولویت اول** (0% - 19 handlers لازم)
|
||||
7. **Discount Shop - BackOffice Integration** ✅ تکمیل شده (19 handlers + BackOffice UI متصل)
|
||||
|
||||
### 📦 **قابل تحویل به Admin**:
|
||||
- ✅ **BackOffice با 56 صفحه کاملاً کاربردی**
|
||||
@@ -111,8 +111,8 @@ strong {
|
||||
- Discount Shop, Tags, Product Bulk Ops, Withdrawal Reports
|
||||
- ⚠️ **نیاز به تکمیل**:
|
||||
- 9 TODO handlers در CMS
|
||||
- 27 TODO handlers در BackOffice.BFF
|
||||
- UI برای Discount Shop, Public Messages, Reports
|
||||
- ~~27 TODO handlers در BackOffice.BFF~~ ✅ handlers BackOffice.BFF تکمیل شدهاند
|
||||
- UI برای گزارشهای پیشرفته (Reports) و برخی بهبودهای FrontOffice
|
||||
|
||||
---
|
||||
|
||||
@@ -127,31 +127,38 @@ strong {
|
||||
└── ✅ Withdrawal & Settlement
|
||||
|
||||
مرحله 2: تکمیل Payment Gateway + CRUD اضافی (در حال انجام)
|
||||
├── ✅ Payment Gateway Backend (85%)
|
||||
├── ✅ Payment Gateway Backend (100%)
|
||||
│ ├── ✅ DayaPaymentService Implementation
|
||||
│ ├── ✅ GetWithdrawalReports (CMS + BFF)
|
||||
│ ├── [ ] CMS gRPC Service
|
||||
│ └── [ ] BackOffice UI (Reports + Withdrawal Management)
|
||||
├── [ ] Product Bulk Operations - نیم روز
|
||||
├── [ ] Order Management - نیم روز
|
||||
└── [ ] Public Messages System - نیم روز
|
||||
│ ├── ✅ GetWithdrawalReports (CMS + BFF + gRPC)
|
||||
│ ├── [✅] CMS gRPC Service (GetWithdrawalReports)
|
||||
│ └── [🟡] BackOffice UI (Reports و Withdrawal Management انجام شده، PDF و تستهای Daya باقیمانده)
|
||||
├── [✅] Product Bulk Operations - نیم روز
|
||||
├── [✅] Order Management - نیم روز (بهبود UI: Timeline، نمودارها، Cancel/Status/Discount در BackOffice UI)
|
||||
└── [ ] Public Messages System - نیم روز (تنها بهبودهای UX/UI)
|
||||
|
||||
مرحله 3: BackOffice UI تکمیلی
|
||||
├── [ ] Financial Reports Page - 1.5 روز
|
||||
├── [ ] Withdrawal Management Page - 2 روز
|
||||
└── [ ] Product Bulk Operations UI - نیم روز
|
||||
├── [🟡] Financial Reports Page - 1.5 روز (WithdrawalReports + SalesReports پیادهسازی شده؛ خروجی PDF باقیمانده)
|
||||
├── [🟡] Withdrawal Management Page - 2 روز (صفحه عملیاتی شده؛ جستجو بر اساس UserId/IbanNumber باقیمانده)
|
||||
└── [🟡] Product Bulk Operations UI - نیم روز (Bulk actions در ProductsMainPage.razor انجام شده؛ صفحه BulkEdit مجزا باقیمانده)
|
||||
|
||||
مرحله 4: FrontOffice (اولویت اصلی بعدی)
|
||||
├── FrontOffice.BFF APIs - 2 هفته
|
||||
│ ├── Browse Discount Shop Products
|
||||
│ ├── Shopping Cart Management
|
||||
│ ├── Order Placement & Payment
|
||||
│ └── Order Tracking
|
||||
└── FrontOffice UI Pages - 3 هفته
|
||||
├── Product Catalog
|
||||
├── Shopping Cart
|
||||
├── Checkout Flow
|
||||
└── Order History
|
||||
مرحله 4: FrontOffice (اولویت اصلی بعدی) ✅ 70% Complete
|
||||
├── FrontOffice.BFF APIs - ✅ 80% Complete
|
||||
│ ├── ✅ Browse Discount Shop Products (Proto ready)
|
||||
│ ├── ✅ Club Membership APIs
|
||||
│ ├── ✅ Network APIs
|
||||
│ ├── ✅ Commission APIs
|
||||
│ ├── ✅ Wallet APIs (6 handlers)
|
||||
│ ├── [ ] Shopping Cart Management
|
||||
│ └── [ ] Order Placement
|
||||
└── FrontOffice UI Pages - ✅ 60% Complete
|
||||
├── ✅ Product Catalog (متصل به gRPC)
|
||||
├── ✅ Shopping Cart
|
||||
├── ✅ Checkout Flow
|
||||
├── ✅ Order History
|
||||
├── ✅ Club & Commission Pages (متصل به gRPC)
|
||||
├── ✅ Network Pages (متصل به gRPC)
|
||||
├── ✅ Wallet Pages (متصل به gRPC)
|
||||
└── [ ] Package Purchase (4 صفحه)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -182,7 +189,7 @@ strong {
|
||||
---
|
||||
|
||||
### 1.1 Payment Gateway Integration (Phase 10) ⭐ **فوری**
|
||||
**وضعیت**: 85% تکمیل (گزارشهای مالی افزوده شد)
|
||||
**وضعیت**: 90% تکمیل (Backend + گزارشهای مالی + صفحات اصلی UI)
|
||||
**زمان تخمینی**: 4-5 روز کاری باقیمانده
|
||||
|
||||
#### ✅ تکمیل شده:
|
||||
@@ -202,33 +209,33 @@ strong {
|
||||
- دستهبندی روزانه/هفتگی/ماهانه با پشتیبانی تقویم شمسی
|
||||
- خلاصه آماری (تعداد، مبلغ، نرخ موفقیت)
|
||||
|
||||
#### ❌ باقیمانده:
|
||||
**الف. CMS gRPC Service (1 روز)**
|
||||
#### 🟡 بخشهای باقیمانده:
|
||||
**الف. CMS gRPC Service (1 روز) - ✅ انجام شده**
|
||||
```
|
||||
- [ ] ایجاد CommissionService یا بهروزرسانی موجود
|
||||
- [ ] پیادهسازی GetWithdrawalReports RPC handler
|
||||
- [ ] Mapping از Domain به Proto
|
||||
- [ ] تست gRPC endpoint
|
||||
- [✅] ایجاد CommissionService یا بهروزرسانی موجود
|
||||
- [✅] پیادهسازی GetWithdrawalReports RPC handler
|
||||
- [✅] Mapping از Domain به Proto
|
||||
- [✅] تست gRPC endpoint
|
||||
```
|
||||
|
||||
**ب. BackOffice UI - Withdrawal Management (2 روز)**
|
||||
```
|
||||
- [ ] صفحه لیست درخواستهای برداشت
|
||||
- [ ] دکمههای تأیید/رد با Confirmation Dialog
|
||||
- [ ] نمایش BankReferenceId و TrackingCode
|
||||
- [ ] نمایش وضعیت PaymentFailed و دلیل خطا
|
||||
- [ ] فیلترینگ بر اساس Status
|
||||
- [ ] جستجو بر اساس UserId/IbanNumber
|
||||
- ✅ صفحه لیست درخواستهای برداشت
|
||||
- ✅ دکمههای تأیید/رد با Confirmation Dialog (متصل به ApproveWithdrawal / RejectWithdrawal / ProcessWithdrawal)
|
||||
- ✅ نمایش BankReferenceId و TrackingCode
|
||||
- ✅ نمایش وضعیت PaymentFailed و دلیل خطا
|
||||
- ✅ فیلترینگ بر اساس Status (CommissionPayoutStatus)
|
||||
- ✅ جستجو بر اساس UserId/IbanNumber
|
||||
```
|
||||
|
||||
**ج. BackOffice UI - Financial Reports (1.5 روز)**
|
||||
```
|
||||
- [ ] صفحه گزارشهای مالی با فیلترها (تاریخ، نوع دوره، وضعیت، کاربر)
|
||||
- [ ] نمایش گزارشهای دورهای (روزانه/هفتگی/ماهانه)
|
||||
- [ ] Chart.js visualization (نمودار میلهای/خطی)
|
||||
- [ ] نمایش خلاصه آماری (کارتهای اطلاعاتی)
|
||||
- [ ] خروجی Excel (EPPlus)
|
||||
- [ ] خروجی PDF (QuestPDF)
|
||||
- [✅] صفحه گزارشهای مالی با فیلترها (تاریخ، نوع دوره، وضعیت، کاربر)
|
||||
- [✅] نمایش گزارشهای دورهای (روزانه/هفتگی/ماهانه)
|
||||
- [✅] نمودارها (MudBlazor Charts بهجای Chart.js)
|
||||
- [✅] نمایش خلاصه آماری (کارتهای اطلاعاتی در WithdrawalReports/SalesReports)
|
||||
- [✅] خروجی Excel/CSV (Export به فایل از طریق UI)
|
||||
- [🟡] خروجی PDF (در حال حاضر خروجی متنی ساختارمند از طریق jsSaveAsFile؛ ادغام QuestPDF در نسخه بعدی)
|
||||
```
|
||||
|
||||
**د. تست یکپارچه (نیم روز)**
|
||||
@@ -241,7 +248,7 @@ strong {
|
||||
---
|
||||
|
||||
### 1.2 CRUD های اضافی ⭐ **بالا**
|
||||
**وضعیت**: 67% (Tag Management و Product Bulk Operations کامل شده)
|
||||
**وضعیت**: 80% (Tag Management و Product Bulk Operations کامل شده، Order Management در BFF تکمیل)
|
||||
**زمان تخمینی**: 1 روز باقیمانده
|
||||
|
||||
#### الف. Tag Management ✅ **کامل شده** (4 دسامبر 2024)
|
||||
@@ -268,13 +275,13 @@ BackOffice.BFF: ✅
|
||||
- [✅] gRPC Clients: Tags, ProductTags registered
|
||||
- [✅] Typo Fixes: ProductGallerys→ProductGalleries, PruductCategory→ProductCategory
|
||||
|
||||
BackOffice UI: ⏸️
|
||||
- [ ] صفحه مدیریت Tags
|
||||
- [ ] Dialog ایجاد/ویرایش Tag
|
||||
- [ ] صفحه Assign Tags به محصولات
|
||||
BackOffice UI: ✅
|
||||
- [✅] صفحه مدیریت Tags (لیست + جستجو بر اساس نام/عنوان، فیلتر وضعیت، pagination)
|
||||
- [✅] Dialog ایجاد/ویرایش Tag (Name, Title, Description, IsActive, SortOrder)
|
||||
- [✅] صفحه/دیالوگ Assign Tags به محصولات (از طریق ProductsMainPage → AssignTagsDialog، شامل نمایش تگهای فعلی هر محصول و امکان حذف آنها)
|
||||
```
|
||||
|
||||
**مستندات**: Backend کامل، UI باقیمانده
|
||||
**مستندات**: Backend + BackOffice.BFF + UI کامل برای Tag Management
|
||||
|
||||
#### ب. Product Bulk Operations ✅ **کامل شده** (4 دسامبر 2024)
|
||||
```
|
||||
@@ -301,10 +308,10 @@ BackOffice.BFF: ✅
|
||||
- [✅] DTOs با rename برای جلوگیری از conflict با proto
|
||||
- [✅] gRPC client integration
|
||||
|
||||
BackOffice UI: ⏸️
|
||||
- [ ] صفحه Bulk Edit Products
|
||||
- [ ] DataGrid با انتخاب چندتایی
|
||||
- [ ] فرم Bulk Update
|
||||
BackOffice UI: ✅
|
||||
- [✅] DataGrid با انتخاب چندتایی و Bulk Actions (ToggleStatus/Delete) در ProductsMainPage.razor
|
||||
- [✅] صفحه Bulk Edit Products (Pages/Products/BulkEdit.razor) با DataGrid و Multiple Selection
|
||||
- [✅] فرم Bulk Update برای ویرایش همزمان قیمت، تخفیف، موجودی (StockUpdateType: Set/Add/Subtract) و وضعیت (Toggle Status) چند محصول، متصل به BulkUpdateProductPrices / BulkUpdateProductStock / ToggleProductStatus
|
||||
```
|
||||
|
||||
#### ج. Order Management ✅ **کامل شده** (4 دسامبر 2024)
|
||||
@@ -317,14 +324,14 @@ CMS Application Layer: ✅
|
||||
- [✅] CalculateOrderPVQuery + Handler + Validator (TODO با محاسبه PV برای MLM)
|
||||
- [✅] Response DTOs با error handling
|
||||
|
||||
BackOffice.BFF: ⏸️
|
||||
- [ ] 4 Handlers (TODO)
|
||||
BackOffice.BFF: ✅
|
||||
- [✅] 5 Handlers (CancelOrder, UpdateOrderStatus, GetOrdersByDateRange, ApplyDiscountToOrder, CalculateOrderPV)
|
||||
|
||||
BackOffice UI: ⏸️
|
||||
- [ ] دکمه Cancel Order با Confirmation
|
||||
- [ ] Dropdown تغییر Status
|
||||
- [ ] فیلتر Date Range
|
||||
- [ ] Dialog اعمال تخفیف
|
||||
BackOffice UI: ✅
|
||||
- [✅] دکمه Cancel Order با Dialog دلیل لغو و انتخاب بازگشت وجه (CancelOrderDialog → CancelOrder)
|
||||
- [✅] Dialog تغییر Status ارسال (ChangeOrderStatusDialog → UpdateOrderStatus) در UserOrderMainPage.razor
|
||||
- [✅] فیلترهای پیشرفته (شناسه سفارش/کاربر/تراکنش، فیلترهای ترکیبی)
|
||||
- [✅] Dialog اعمال تخفیف (ApplyDiscountDialog → ApplyDiscountToOrder)
|
||||
```
|
||||
|
||||
**سطوح دسترسی**:
|
||||
@@ -372,26 +379,18 @@ CMS:
|
||||
```
|
||||
CMS:
|
||||
- [✅] Proto: public_messages.proto موجود
|
||||
- [ ] Entity: PublicMessage (Title, Content, Type, StartDate, EndDate, IsActive)
|
||||
- [ ] Enum: MessageType (Info, Warning, Error, Success)
|
||||
- [✅] Entity: PublicMessage (Title, Content, Type, StartDate, EndDate, IsActive)
|
||||
- [✅] Enum: MessageType (Info, Warning, Error, Success)
|
||||
#### ❌ باقیمانده:
|
||||
```
|
||||
BackOffice.BFF:
|
||||
- [ ] 8 Handlers (TODO format):
|
||||
- CreatePublicMessage
|
||||
- UpdatePublicMessage
|
||||
- DeletePublicMessage
|
||||
- PublishMessage
|
||||
- ArchiveMessage
|
||||
- GetAllMessages
|
||||
- GetActiveMessages
|
||||
- GetPublicMessage
|
||||
- [✅] 8 Handlers (Create/Update/Delete/Publish/Archive/GetAll/GetActive/GetById)
|
||||
|
||||
BackOffice UI:
|
||||
- [ ] صفحه لیست اعلانات (DataGrid)
|
||||
- [ ] Dialog ایجاد/ویرایش اعلان
|
||||
- [ ] دکمه Publish/Archive
|
||||
- [ ] پیشنمایش اعلان
|
||||
- [✅] صفحه لیست اعلانات (DataGrid)
|
||||
- [✅] Dialog ایجاد/ویرایش اعلان
|
||||
- [✅] دکمه Publish/Archive
|
||||
- [✅] پیشنمایش اعلان
|
||||
```
|
||||
|
||||
**سطوح دسترسی**:
|
||||
@@ -1133,16 +1132,20 @@ ApplicationContractContext:
|
||||
* RefreshPermissions()
|
||||
```
|
||||
|
||||
**د. Public Messages Management** (1 روز)
|
||||
**د. Public Messages Management** (1 روز) ✅ (پیادهسازی شده با ساختار نهایی)
|
||||
```
|
||||
- [ ] Pages/Messages/MessagesList.razor
|
||||
* DataGrid: Title, Type, StartDate, EndDate, IsActive
|
||||
* دکمههای Create, Edit, Delete, Publish
|
||||
- [ ] Components/MessageDialog.razor
|
||||
* فرم: Title, Content (TinyMCE), Type, Dates
|
||||
* پیشنمایش
|
||||
- [ ] Components/MessagePreview.razor
|
||||
* Alert با رنگ بر اساس Type
|
||||
- [✅] Pages/PublicMessages/PublicMessagesMainPage.razor
|
||||
* DataGrid: Title, Type, Status, StartDate, EndDate, IsActive
|
||||
* دکمههای Create, Edit, Delete, Publish/Archive
|
||||
* فیلترها بر اساس نوع پیام، وضعیت و بازه زمانی
|
||||
- [✅] Components/MessageFormDialog.razor
|
||||
* فرم: Title, Content (Rich Text)، Type، تاریخهای Start/End، وضعیت، گزینه انتشار
|
||||
* پیشنمایش و Validation کامل
|
||||
- [✅] Components/MessageViewDialog.razor
|
||||
* نمایش پیام بهصورت Alert/کارت با رنگ بر اساس Type
|
||||
* نمایش تصویر، لینک، آمار بازدید و تاریخها
|
||||
- [✅] Components/MessageTemplatesDialog.razor
|
||||
* مدیریت قالبهای آماده پیام (ایجاد/حذف/استفاده) با ذخیرهسازی در LocalStorage
|
||||
```
|
||||
|
||||
**ه. Manual Payment Management** (1 روز)
|
||||
@@ -1157,21 +1160,27 @@ ApplicationContractContext:
|
||||
* دکمههای Approve/Reject
|
||||
```
|
||||
|
||||
**و. Tag Management** (1 روز)
|
||||
**و. Tag Management** (1 روز) ✅ (با نامگذاری و ساختار جدید)
|
||||
```
|
||||
- [ ] Pages/Products/Tags.razor
|
||||
* DataGrid: Name, ProductCount
|
||||
- [✅] Pages/Tag/TagManagementPage.razor
|
||||
* DataGrid: Name, Title, IsActive, ProductCount
|
||||
* دکمههای Create, Edit, Delete
|
||||
- [ ] Components/TagDialog.razor
|
||||
- [ ] Components/AssignTagsDialog.razor
|
||||
* فیلتر بر اساس نام/عنوان و وضعیت
|
||||
- [✅] Components/TagEditDialog.razor
|
||||
* فرم ایجاد/ویرایش Tag: Name, Title, Description, IsActive, SortOrder
|
||||
- [✅] Components/AssignTagsDialog.razor
|
||||
* اختصاص تگ به محصولات از طریق ProductsMainPage
|
||||
* نمایش تگهای فعلی هر محصول و امکان حذف آنها
|
||||
```
|
||||
|
||||
**ز. Product Bulk Edit** (1 روز)
|
||||
**ز. Product Bulk Edit** (1 روز) ✅
|
||||
```
|
||||
- [ ] Pages/Products/BulkEdit.razor
|
||||
* DataGrid با Multiple Selection
|
||||
* فرم: Update Price, Update Stock, Toggle Status
|
||||
* دکمه Apply
|
||||
- [✅] Pages/Products/BulkEdit.razor
|
||||
* DataGrid با Multiple Selection برای لیست محصولات (با فیلترهای مشابه ProductsMainPage)
|
||||
* فرم: Update Price (اجباری برای BulkUpdateProductPrices) + فیلدهای اختیاری تخفیف و تخفیف باشگاه
|
||||
* فرم: Update Stock با انتخاب StockUpdateType (Set/Add/Subtract) و مقدار Quantity
|
||||
* فرم: Toggle Status (فعال/غیرفعال) برای محصولات انتخابشده
|
||||
* دکمه Apply با Dialog تأیید و خلاصه تغییرات، اتصال مستقیم به gRPC (BulkUpdateProductPrices, BulkUpdateProductStock, ToggleProductStatus) در BackOffice.BFF
|
||||
```
|
||||
|
||||
**ح. Role Management** (2 روز) - **SuperAdmin only**
|
||||
@@ -1202,63 +1211,90 @@ ApplicationContractContext:
|
||||
|
||||
## 🔵 بخش 4: FrontOffice.BFF - کارهای باقیمانده
|
||||
|
||||
**وضعیت**: 20% (فقط برخی Queries پایه موجود)
|
||||
**زمان تخمینی**: 2 هفته
|
||||
**وضعیت**: 80% ✅ (Proto Projects + Handlers متصل به CMS)
|
||||
**زمان تخمینی**: 3 روز باقیمانده
|
||||
|
||||
### تسکهای اصلی:
|
||||
### ✅ تکمیل شده (2024-12-26):
|
||||
|
||||
**الف. Authentication APIs** (3 روز)
|
||||
**Proto Projects (7 پروژه جدید):**
|
||||
```
|
||||
- [ ] RegisterCommand + Handler
|
||||
- [ ] LoginQuery + Handler
|
||||
- [ ] VerifyOtpCommand + Handler
|
||||
- [ ] RefreshTokenCommand + Handler
|
||||
- [ ] LogoutCommand + Handler
|
||||
- [ ] GetMyProfileQuery + Handler
|
||||
- [ ] UpdateMyProfileCommand + Handler
|
||||
✅ FrontOffice.BFF.Commission.Protobuf
|
||||
✅ FrontOffice.BFF.ClubMembership.Protobuf
|
||||
✅ FrontOffice.BFF.NetworkMembership.Protobuf
|
||||
✅ FrontOffice.BFF.DiscountShop.Protobuf
|
||||
✅ FrontOffice.BFF.Package.Protobuf (جدید)
|
||||
✅ FrontOffice.BFF.User.Protobuf (موجود)
|
||||
✅ FrontOffice.BFF.UserWallet.Protobuf (موجود)
|
||||
```
|
||||
|
||||
**ب. Order APIs** (3 روز)
|
||||
**Handlers تکمیل شده:**
|
||||
```
|
||||
- [ ] GetMyOrdersQuery + Handler
|
||||
- [ ] GetMyOrderQuery + Handler
|
||||
✅ GetMyClubMembershipQuery + Handler
|
||||
✅ ActivateMyClubMembershipCommand + Handler
|
||||
✅ GetMyCommissionPayoutsQuery + Handler
|
||||
✅ GetMyWeeklyBalancesQuery + Handler
|
||||
✅ GetMyNetworkTreeQuery + Handler
|
||||
✅ GetMyNetworkStatisticsQuery + Handler
|
||||
✅ GetMyNetworkPositionQuery + Handler (جدید با ResponseDto)
|
||||
✅ Wallet Handlers (6 عدد - متصل به CMS)
|
||||
```
|
||||
|
||||
### تسکهای باقیمانده:
|
||||
|
||||
**الف. Authentication APIs** (1 روز) - موجود نیاز به بررسی
|
||||
```
|
||||
- [✅] RegisterCommand + Handler
|
||||
- [✅] LoginQuery + Handler
|
||||
- [ ] VerifyOtpCommand + Handler (بررسی)
|
||||
- [✅] RefreshTokenCommand + Handler
|
||||
- [ ] LogoutCommand + Handler (بررسی)
|
||||
- [✅] GetMyProfileQuery + Handler
|
||||
- [✅] UpdateMyProfileCommand + Handler
|
||||
```
|
||||
|
||||
**ب. Order APIs** (1 روز)
|
||||
```
|
||||
- [✅] GetMyOrdersQuery + Handler
|
||||
- [✅] GetMyOrderQuery + Handler
|
||||
- [ ] CreateOrderCommand + Handler
|
||||
- [ ] CancelMyOrderCommand + Handler
|
||||
- [ ] GetOrderTrackingQuery + Handler
|
||||
```
|
||||
|
||||
**ج. Profile APIs** (2 روز)
|
||||
**ج. Profile APIs** (0.5 روز)
|
||||
```
|
||||
- [ ] GetMyAddressesQuery + Handler
|
||||
- [ ] CreateMyAddressCommand + Handler
|
||||
- [ ] UpdateMyAddressCommand + Handler
|
||||
- [ ] DeleteMyAddressCommand + Handler
|
||||
- [✅] GetMyAddressesQuery + Handler
|
||||
- [✅] CreateMyAddressCommand + Handler
|
||||
- [✅] UpdateMyAddressCommand + Handler
|
||||
- [✅] DeleteMyAddressCommand + Handler
|
||||
- [ ] SetDefaultAddressCommand + Handler
|
||||
```
|
||||
|
||||
**د. Club & Commission (Customer)** (2 روز)
|
||||
**د. Club & Commission (Customer)** ✅ تکمیل شده
|
||||
```
|
||||
- [ ] GetMyClubMembershipQuery + Handler
|
||||
- [ ] ActivateMyClubMembershipCommand + Handler
|
||||
- [ ] GetMyCommissionPayoutsQuery + Handler
|
||||
- [ ] RequestMyWithdrawalCommand + Handler
|
||||
- [✅] GetMyClubMembershipQuery + Handler
|
||||
- [✅] ActivateMyClubMembershipCommand + Handler
|
||||
- [✅] GetMyCommissionPayoutsQuery + Handler
|
||||
- [✅] RequestMyWithdrawalCommand + Handler
|
||||
```
|
||||
|
||||
**ه. Network (Customer)** (2 روز)
|
||||
**ه. Network (Customer)** ✅ تکمیل شده
|
||||
```
|
||||
- [ ] GetMyNetworkTreeQuery + Handler
|
||||
- [ ] GetMyNetworkPositionQuery + Handler
|
||||
- [ ] GetMyNetworkStatisticsQuery + Handler
|
||||
- [✅] GetMyNetworkTreeQuery + Handler
|
||||
- [✅] GetMyNetworkPositionQuery + Handler
|
||||
- [✅] GetMyNetworkStatisticsQuery + Handler
|
||||
```
|
||||
|
||||
**و. Wallet (Customer)** (2 روز)
|
||||
**و. Wallet (Customer)** ✅ تکمیل شده
|
||||
```
|
||||
- [ ] GetMyWalletQuery + Handler (با DiscountBalance)
|
||||
- [ ] GetMyTransactionsQuery + Handler
|
||||
- [ ] GetMyDiscountTransactionsQuery + Handler
|
||||
- [✅] GetMyWalletQuery + Handler (با DiscountBalance)
|
||||
- [✅] GetMyTransactionsQuery + Handler
|
||||
- [✅] RequestWithdrawalCommand + Handler
|
||||
- [✅] GetMyWithdrawalsQuery + Handler
|
||||
- [✅] GetWithdrawalSettingsQuery + Handler
|
||||
```
|
||||
|
||||
**ز. Cart (Customer)** (2 روز)
|
||||
**ز. Cart (Customer)** (0.5 روز)
|
||||
```
|
||||
- [ ] GetMyCartQuery + Handler
|
||||
- [ ] AddToMyCartCommand + Handler
|
||||
@@ -1274,53 +1310,95 @@ ApplicationContractContext:
|
||||
|
||||
## 🟣 بخش 5: FrontOffice UI - کارهای باقیمانده
|
||||
|
||||
**وضعیت**: 10% (چند صفحه پایه)
|
||||
**زمان تخمینی**: 3 هفته
|
||||
**وضعیت**: 60% ✅ (Mock Services → gRPC تبدیل شده)
|
||||
**زمان تخمینی**: 2 هفته
|
||||
|
||||
### تسکهای اصلی:
|
||||
### ✅ تکمیل شده (2024-12-26):
|
||||
|
||||
**الف. Authentication Pages** (3 روز)
|
||||
**Services متصل به BFF gRPC:**
|
||||
```
|
||||
- [ ] Pages/Auth/Register.razor
|
||||
- [ ] Pages/Auth/Login.razor
|
||||
- [ ] Pages/Auth/VerifyOtp.razor
|
||||
✅ ClubMembershipService → ClubMembershipContract.ClubMembershipContractClient
|
||||
✅ NetworkMembershipService → NetworkMembershipContract.NetworkMembershipContractClient
|
||||
✅ CommissionService → CommissionContract.CommissionContractClient
|
||||
✅ WalletService → UserWalletContract.UserWalletContractClient (6 متد)
|
||||
```
|
||||
|
||||
**Proto References اضافه شده:**
|
||||
```
|
||||
✅ FrontOffice.BFF.ClubMembership.Protobuf
|
||||
✅ FrontOffice.BFF.Commission.Protobuf
|
||||
✅ FrontOffice.BFF.NetworkMembership.Protobuf
|
||||
✅ FrontOffice.BFF.DiscountShop.Protobuf
|
||||
✅ FrontOffice.BFF.UserWallet.Protobuf (ProjectReference)
|
||||
```
|
||||
|
||||
### تسکهای باقیمانده:
|
||||
|
||||
**الف. Authentication Pages** (2 روز) - موجود نیاز به بررسی
|
||||
```
|
||||
- [✅] Pages/Auth/Register.razor
|
||||
- [✅] Pages/Auth/Login.razor
|
||||
- [ ] Pages/Auth/VerifyOtp.razor (بررسی)
|
||||
- [ ] Pages/Auth/ForgotPassword.razor
|
||||
```
|
||||
|
||||
**ب. Profile Pages** (4 روز)
|
||||
**ب. Profile Pages** (2 روز)
|
||||
```
|
||||
- [ ] Pages/Profile/Index.razor
|
||||
- [ ] Pages/Profile/EditProfile.razor
|
||||
- [ ] Pages/Profile/Addresses.razor
|
||||
- [✅] Pages/Profile/Index.razor
|
||||
- [✅] Pages/Profile/EditProfile.razor
|
||||
- [✅] Pages/Profile/Addresses.razor
|
||||
- [ ] Pages/Profile/ChangePassword.razor
|
||||
```
|
||||
|
||||
**ج. Order Pages** (5 روز)
|
||||
**ج. Order Pages** (3 روز)
|
||||
```
|
||||
- [ ] Pages/Orders/MyOrders.razor
|
||||
- [ ] Pages/Orders/OrderDetails.razor
|
||||
- [✅] Pages/Orders/MyOrders.razor
|
||||
- [✅] Pages/Orders/OrderDetails.razor
|
||||
- [ ] Pages/Orders/Tracking.razor
|
||||
```
|
||||
|
||||
**د. Cart & Checkout** (5 روز)
|
||||
**د. Cart & Checkout** (3 روز)
|
||||
```
|
||||
- [ ] Pages/Cart/Index.razor (با نمایش VAT)
|
||||
- [ ] Pages/Checkout/Shipping.razor
|
||||
- [ ] Pages/Checkout/Payment.razor
|
||||
- [ ] Pages/Checkout/Confirmation.razor
|
||||
- [✅] Pages/Cart/Index.razor (با نمایش VAT)
|
||||
- [✅] Pages/Checkout/Shipping.razor
|
||||
- [✅] Pages/Checkout/Payment.razor
|
||||
- [✅] Pages/Checkout/Confirmation.razor
|
||||
- [⏳] DiscountCode validation (نیاز به ValidateDiscountCode RPC در CMS)
|
||||
```
|
||||
|
||||
**ه. Club & Commission** (4 روز)
|
||||
**ه. Club & Commission** ✅ تکمیل شده (متصل به gRPC)
|
||||
```
|
||||
- [ ] Pages/Club/Membership.razor
|
||||
- [ ] Pages/Commission/MyCommissions.razor
|
||||
- [ ] Pages/Commission/Withdrawal.razor
|
||||
- [✅] Pages/Club/Membership.razor
|
||||
- [✅] Pages/Commission/MyCommissions.razor
|
||||
- [✅] Pages/Commission/Withdrawal.razor
|
||||
```
|
||||
|
||||
**و. Network Pages** (2 روز)
|
||||
**و. Network Pages** ✅ تکمیل شده (متصل به gRPC)
|
||||
```
|
||||
- [ ] Pages/Network/Tree.razor
|
||||
- [ ] Pages/Network/Position.razor
|
||||
- [✅] Pages/Network/Tree.razor
|
||||
- [✅] Pages/Network/Position.razor
|
||||
```
|
||||
|
||||
**ز. Wallet Pages** ✅ تکمیل شده (متصل به gRPC)
|
||||
```
|
||||
- [✅] Pages/Wallet/Index.razor
|
||||
- [✅] Pages/Wallet/Transactions.razor
|
||||
- [✅] Pages/Wallet/Withdrawal.razor
|
||||
```
|
||||
|
||||
**ح. Package Purchase** (2 روز)
|
||||
```
|
||||
- [ ] Pages/Packages/Index.razor
|
||||
- [ ] Pages/Packages/PurchasePackage.razor
|
||||
- [ ] Pages/Packages/MyPackages.razor
|
||||
- [ ] Pages/Packages/PackageDetails.razor
|
||||
```
|
||||
|
||||
### ⏳ نیاز به توسعه CMS:
|
||||
```
|
||||
- PackageDetail Reviews → نیاز به Review/Comment entity در CMS
|
||||
- Checkout Discount Validation → نیاز به ValidateDiscountCode RPC در CMS
|
||||
- Contact Form → نیاز به ContactMessage entity در CMS
|
||||
```
|
||||
|
||||
**مستندات**: `FrontOffice/README.md`
|
||||
|
||||
+156
-86
@@ -1,6 +1,7 @@
|
||||
# 🎯 اسپرینت جاری (Current Sprint)
|
||||
|
||||
**تاریخ شروع**: ۱۴ آذر ۱۴۰۴
|
||||
**آخرین بروزرسانی**: ۱۴ آذر ۱۴۰۴
|
||||
**مدت**: 2 هفته
|
||||
**هدف**: تکمیل FrontOffice UI و یکپارچهسازی BFF
|
||||
|
||||
@@ -9,90 +10,96 @@
|
||||
## 📋 وضعیت کلی پروژه
|
||||
|
||||
### Backend:
|
||||
- ✅ **CMS Microservice**: 95% Complete (Phase 9 & 12 Complete)
|
||||
- ✅ **BackOffice.BFF**: 100% Complete (35 Handlers)
|
||||
- 🚧 **FrontOffice.BFF**: 60% Complete (12 Handlers - 3 new today)
|
||||
- ✅ **CMS Microservice**: ~95% Complete
|
||||
- ✅ **BackOffice.BFF**: 100% Complete (35+ Handlers)
|
||||
- ✅ **FrontOffice.BFF**: 90% Complete (Proto Projects + Handlers + Mappings)
|
||||
|
||||
### Frontend:
|
||||
- ✅ **BackOffice UI**: 100% Complete (23 Pages)
|
||||
- 🚧 **FrontOffice UI**: 75% Complete (24 Pages - 7 new today)
|
||||
- ✅ **BackOffice UI**: ~95% Complete (60+ صفحه)
|
||||
- 🟢 **FrontOffice UI**: 85% Complete (24+ صفحه - سرویسها به gRPC وصل شدند)
|
||||
|
||||
---
|
||||
|
||||
## 🔥 High Priority (باید امروز/فردا تمام شود)
|
||||
## ✅ تکمیل شده (۱۴ آذر ۱۴۰۴)
|
||||
|
||||
### 1. FrontOffice UI - Integration با BFF Real APIs ⏰
|
||||
**Status**: 🚧 In Progress (Mock → Real API)
|
||||
**Owner**: Frontend Team
|
||||
**Deadline**: ۱۵ آذر (فردا)
|
||||
### Proto Projects برای Frontend:
|
||||
|
||||
#### Tasks:
|
||||
- [ ] **ClubMembership صفحات** (3 صفحه)
|
||||
- [ ] `ClubInfo.razor` - اتصال به `GetClubMembershipInfo`
|
||||
- [ ] `ActivateClub.razor` - اتصال به `ActivateClubMembership`
|
||||
- [ ] `ClubFeatures.razor` - اتصال به `GetAvailableClubFeatures`
|
||||
| پروژه | Endpoints | وضعیت |
|
||||
|-------|-----------|-------|
|
||||
| `FrontOffice.BFF.DiscountShop.Protobuf` | 7 RPCs | ✅ Complete |
|
||||
| `FrontOffice.BFF.Commission.Protobuf` | `GetMyCommissionPayouts`, `GetMyWeeklyBalances` | ✅ Complete |
|
||||
| `FrontOffice.BFF.ClubMembership.Protobuf` | `GetMyClubMembership`, `ActivateMyClubMembership` | ✅ Complete |
|
||||
| `FrontOffice.BFF.NetworkMembership.Protobuf` | `GetMyNetworkPosition`, `GetMyNetworkTree`, `GetMyNetworkStatistics` | ✅ Complete |
|
||||
| `FrontOffice.BFF.UserWallet.Protobuf` | 6 RPCs (Wallet, Transactions, Withdrawals) | ✅ Complete |
|
||||
|
||||
- [ ] **NetworkMembership صفحات** (2 صفحه)
|
||||
- [ ] `Tree.razor` - اتصال به `GetNetworkTree` + Tree Builder
|
||||
- [ ] `NetworkStats.razor` - اتصال به `GetNetworkStatistics`
|
||||
### FrontOffice UI Services - اتصال به gRPC:
|
||||
|
||||
- [ ] **Commission صفحات** (2 صفحه)
|
||||
- [ ] `WeeklyReport.razor` - اتصال به `GetWeeklyCommissionReport`
|
||||
- [ ] `PayoutHistory.razor` - اتصال به `GetUserPayouts`
|
||||
| Service | Status | توضیحات |
|
||||
|---------|--------|---------|
|
||||
| `ClubMembershipService` | ✅ Connected | GetMyMembership, ActivateMembership |
|
||||
| `NetworkMembershipService` | ✅ Connected | GetTree, GetStatistics + Tree Mapping |
|
||||
| `CommissionService` | ✅ Connected | GetPayouts, GetWeeklyBalances |
|
||||
| `WalletService` | ✅ Connected | GetBalances, GetTransactions, RequestWithdrawal, GetWithdrawals, GetSettings |
|
||||
|
||||
**Blockers**:
|
||||
- ⚠️ Protobuf mismatch (ActivationDate vs ActivatedAt) - نیاز به هماهنگی با Backend
|
||||
- ⚠️ Tree structure در CMS flat list است - نیاز به Tree Builder در BFF
|
||||
### Build Status:
|
||||
```
|
||||
✅ FrontOffice: Build Succeeded - 0 Errors
|
||||
✅ FrontOffice.BFF: Build Succeeded - 0 Errors
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. FrontOffice.BFF - رفع Protobuf Mismatches ⏰
|
||||
**Status**: 🚧 In Progress
|
||||
**Owner**: Backend Team
|
||||
**Deadline**: ۱۵ آذر
|
||||
## ✅ بهروزرسانیهای BackOffice در این اسپرینت
|
||||
|
||||
#### Tasks:
|
||||
- [ ] **ClubMembershipHandler** - تطبیق field names
|
||||
```csharp
|
||||
// CMS: ActivationDate → BFF: ActivatedAt
|
||||
// FIX: Rename in proto or add mapping
|
||||
```
|
||||
> مطابق BACKLOG و ui-status (BackOffice)، تمرکز بخشی از این اسپرینت روی تکمیل BackOffice قبل از ورود جدی به FrontOffice بوده است.
|
||||
|
||||
- [ ] **NetworkMembershipHandler** - پیادهسازی Tree Builder
|
||||
```csharp
|
||||
// CMS: Flat list → BFF: Tree structure
|
||||
// FIX: Build tree from flat list recursively
|
||||
```
|
||||
### BackOffice.BFF
|
||||
- ✅ تکمیل GetWithdrawalReports (CMS + BackOffice.BFF + gRPC Service)
|
||||
- ✅ تکمیل Tag Management handlers (Create/Update/Delete/GetAll/GetById/AssignTagToProduct)
|
||||
- ✅ تکمیل Discount Shop handlers (DiscountProduct / DiscountCategory / DiscountOrder / DiscountShoppingCart)
|
||||
- ✅ تکمیل Public Messages BFF wiring (Contracts + handlers)
|
||||
|
||||
- [ ] **CommissionHandler** - تطبیق WeekNumber type
|
||||
```csharp
|
||||
// CMS: WeekNumber (int) → BFF: WeekNumber (string)
|
||||
// FIX: Convert int to "YYYY-Www" format
|
||||
```
|
||||
### BackOffice UI
|
||||
- ✅ Commission / Withdrawal Management
|
||||
- Commission/WithdrawalRequests.razor: اتصال واقعی به API (GetWithdrawalRequests, Approve/Reject/Process) + نمایش فیلدهای بانکی (BankReferenceId, TrackingCode, PaymentFailureReason)
|
||||
- Commission/WithdrawalReports.razor: فیلترها، نمودارهای آماری، خلاصه آماری، Export به Excel/CSV + خروجی متنی ساختارمند برای PDF
|
||||
- ✅ Discount Shop Reports
|
||||
- DiscountShop/Reports/SalesReports.razor: جدول سفارشها، فیلتر تاریخ/وضعیت/جستجو، نمودار روند فروش، نمودار محصولات پرفروش، آمار درآمد
|
||||
- ✅ Products & Orders
|
||||
- Products/ProductsMainPage.razor: انتخاب چندتایی، Bulk Delete و Bulk ToggleStatus، فیلترهای پیشرفته
|
||||
- UserOrder/UserOrderMainPage.razor: کارت آمار سفارشها + نمودار تعداد سفارش بر اساس وضعیت ارسال + Timeline وضعیت سفارش در UserOrderDetailsDialog
|
||||
- UserOrder/UserOrderMainPage.razor: تکمیل امکانات مدیریت سفارشها (لغو سفارش از طریق CancelOrderDialog، تغییر وضعیت ارسال با ChangeOrderStatusDialog و اعمال تخفیف دستی با ApplyDiscountDialog متصل به متدهای CancelOrder، UpdateOrderStatus و ApplyDiscountToOrder در BackOffice.BFF)
|
||||
- ✅ Tag Management
|
||||
- Tag/TagManagementPage.razor: لیست + جستجو + فیلتر وضعیت + صفحهبندی
|
||||
- Tag/Components/TagEditDialog.razor: ایجاد/ویرایش تگ (Name, Title, Description, IsActive, SortOrder)
|
||||
- Tag/Components/AssignTagsDialog.razor: اختصاص تگ به محصول، نمایش تگهای فعلی هر محصول، امکان حذف تگها
|
||||
- ✅ Dashboard & Widgets
|
||||
- Dashboard/DiscountShopWidget.razor: ویجت آمار فروشگاه تخفیفی (تعداد سفارشها و مجموع فروش ۷ روز اخیر + آمار امروز + نمودار روند فروش روزانه) و اضافهشدن به SystemOverview.razor
|
||||
- ✅ Public Messages Templates
|
||||
- PublicMessages/Components/MessageTemplatesDialog.razor: مدیریت قالبهای آماده پیام (افزودن/حذف/استفاده)، ذخیره در LocalStorage، دسترسی از PublicMessagesMainPage
|
||||
- ✅ Discount Shop Product Image Gallery (UI)
|
||||
- DiscountShop/Components/ProductImageGallery.razor: گالری تصاویر محصول برای Discount Shop با multi-upload، پیشنمایش Base64 و Drag & Drop برای تغییر ترتیب (فعلاً سمت UI؛ اتصال Backend در فاز بعدی)
|
||||
- ✅ Product List Export
|
||||
- Products/ProductsMainPage.razor: دکمه «خروجی Excel» که با توجه به فیلترهای فعلی، لیست محصولات را از طریق gRPC دریافت کرده و خروجی CSV (Excel-friendly) تولید میکند (ستونها: Id, Title, Price, Discount, RemainingCount, SaleCount, ViewCount)
|
||||
- ✅ Product Bulk Edit UI
|
||||
- Pages/Products/BulkEdit.razor: صفحهی مجزای ویرایش گروهی محصولات با DataGrid (Multiple Selection) و فرم Bulk Update برای قیمت، تخفیف، تخفیف باشگاه، موجودی (StockUpdateType: Set/Add/Subtract) و وضعیت (Toggle Status) که به متدهای BulkUpdateProductPrices، BulkUpdateProductStock و ToggleProductStatus در BackOffice.BFF متصل است.
|
||||
|
||||
**File**: `03-BACKEND/FrontOffice.BFF/protobuf-mismatch.md` دارای جزئیات کامل
|
||||
## 🔥 High Priority (در حال انجام)
|
||||
|
||||
### 1. موارد نیازمند پیادهسازی در CMS (Deferred)
|
||||
**Status**: ⏳ Deferred - نیاز به entity جدید در CMS
|
||||
|
||||
| Feature | CMS Entity Needed | Status |
|
||||
|---------|-------------------|--------|
|
||||
| **PackageDetail Reviews** | `Review`, `Comment` entities | ❌ Not in CMS |
|
||||
| **Checkout Discount Validation** | `ValidateDiscountCode` RPC | ❌ Not in CMS |
|
||||
| **Contact Form** | `ContactMessage` entity | ❌ Not in CMS |
|
||||
|
||||
**Note**: این موارد فعلاً با Mock data کار میکنند تا CMS تکمیل شود.
|
||||
|
||||
---
|
||||
|
||||
## 🟡 Medium Priority (این هفته)
|
||||
|
||||
### 3. WalletService - پیادهسازی متدهای TODO
|
||||
**Status**: ⏳ Not Started
|
||||
**Owner**: Frontend Team
|
||||
**Deadline**: ۱۷ آذر
|
||||
|
||||
#### Tasks (5 متد):
|
||||
- [ ] `GetUserWalletBalanceAsync()` - دریافت موجودی کیف پول
|
||||
- [ ] `ChargeWalletAsync()` - شارژ کیف پول
|
||||
- [ ] `WithdrawFromWalletAsync()` - برداشت از کیف پول
|
||||
- [ ] `GetWalletTransactionsAsync()` - تاریخچه تراکنشها
|
||||
- [ ] `TransferBetweenWalletsAsync()` - انتقال بین کیف پولها
|
||||
|
||||
**File**: `04-FRONTEND/FrontOffice/todo-commented-code.md`
|
||||
|
||||
---
|
||||
|
||||
### 4. Package Purchase System - UI Implementation
|
||||
### 2. Package Purchase System - UI Implementation
|
||||
**Status**: ⏳ Not Started (Proto Complete ✅)
|
||||
**Owner**: FrontOffice Team
|
||||
**Deadline**: ۱۸ آذر
|
||||
@@ -115,6 +122,76 @@
|
||||
|
||||
---
|
||||
|
||||
### 3. 🔴 اصلاح محاسبه کمیسیون هفتگی (بحرانی)
|
||||
**Status**: 🔄 در حال انجام
|
||||
**Owner**: CMS Team
|
||||
**تاریخ شروع**: ۱۴ آذر ۱۴۰۴
|
||||
**Estimate**: 2.5 روز
|
||||
|
||||
#### شرح مشکلات:
|
||||
|
||||
| # | مشکل | وضعیت |
|
||||
|---|------|-------|
|
||||
| 1 | محدودیت لول (15) پیادهسازی نشده | 🔄 در حال انجام |
|
||||
| 2 | فقط تعادل شخصی حساب میشود (نه زیرمجموعه) | ⏳ Pending |
|
||||
|
||||
#### فرمول صحیح:
|
||||
```
|
||||
کمیسیون = (تعادل_شخص + SUM(تعادل_زیرمجموعه تا 15 لول)) × ارزش_هر_تعادل
|
||||
```
|
||||
|
||||
#### تسکها:
|
||||
|
||||
| فاز | شرح | وضعیت |
|
||||
|-----|------|-------|
|
||||
| 1 | اضافه کردن `Commission.MaxNetworkLevel` به Config | 🔄 |
|
||||
| 2 | اصلاح `CalculateWeeklyBalancesCommandHandler` - محدودیت لول | ⏳ |
|
||||
| 3 | اصلاح `ProcessUserPayoutsCommandHandler` - تعادل زیرمجموعه | ⏳ |
|
||||
| 4 | تست و Build | ⏳ |
|
||||
|
||||
**Reference**: `01-BUSINESS/commission-calculation-fix.md`
|
||||
|
||||
---
|
||||
|
||||
### 4. ✅ اصلاح سقف تعادل هفتگی (MaxWeeklyBalances)
|
||||
**Status**: ✅ تکمیل شد
|
||||
**Owner**: CMS Team
|
||||
**تاریخ تکمیل**: ۱۴ آذر ۱۴۰۴
|
||||
|
||||
#### شرح مشکل:
|
||||
سقف تعادل هفتگی در پیادهسازی فعلی **300 کل** بود، اما باید **300 برای هر دست** باشد.
|
||||
|
||||
| توضیح | منطق قدیم | منطق جدید |
|
||||
|-------|-----------|-----------|
|
||||
| سقف | 300 کل | 300 هر دست |
|
||||
| Max Total | 300 | 300+300=600 |
|
||||
|
||||
#### تغییرات انجام شده:
|
||||
|
||||
**CMS Changes:**
|
||||
- ✅ **SystemConfiguration**: تغییر کلید از `MaxWeeklyBalancesPerUser` به `MaxWeeklyBalancesPerLeg`
|
||||
- ✅ **CalculateWeeklyBalancesCommandHandler**: اصلاح منطق محاسبه سقف
|
||||
- اعمال سقف روی هر دست جداگانه قبل از محاسبه MIN
|
||||
- باقیمانده = مازاد سقف هر دست (نه نصف تعادل کل)
|
||||
- ✅ **ApplicationDbContextInitialiser**: اصلاح Seed Data
|
||||
|
||||
**منطق جدید:**
|
||||
```csharp
|
||||
// ✅ سقف روی هر دست جداگانه
|
||||
var cappedLeftTotal = Math.Min(leftTotal, maxBalancesPerLeg);
|
||||
var cappedRightTotal = Math.Min(rightTotal, maxBalancesPerLeg);
|
||||
var totalBalances = Math.Min(cappedLeftTotal, cappedRightTotal);
|
||||
var leftRemainder = leftTotal - cappedLeftTotal; // مازاد سقف
|
||||
var rightRemainder = rightTotal - cappedRightTotal;
|
||||
```
|
||||
|
||||
**Build Status**: ✅ CMS Build Succeeded - 0 Errors
|
||||
|
||||
**مستندات:**
|
||||
- ✅ `01-BUSINESS/balance-calculation-rules.md` - آپدیت شد
|
||||
|
||||
---
|
||||
|
||||
## 🟢 Low Priority (هفته بعد)
|
||||
|
||||
### 5. VAT System Implementation
|
||||
@@ -143,38 +220,32 @@
|
||||
|
||||
## ⚠️ Blockers & Dependencies
|
||||
|
||||
### 🔴 Critical Blockers:
|
||||
1. **Protobuf Mismatch** (FrontOffice.BFF ↔ CMS)
|
||||
- Impact: 3 modules affected
|
||||
- Resolution: Backend coordination needed
|
||||
- ETA: امروز/فردا
|
||||
|
||||
2. **Tree Builder Missing** (NetworkMembership)
|
||||
- Impact: Tree.razor can't display network
|
||||
- Resolution: Implement recursive tree builder in BFF
|
||||
- ETA: 1 روز
|
||||
### 🟢 Resolved:
|
||||
1. ~~**Protobuf Mismatch** (FrontOffice.BFF ↔ CMS)~~ ✅ Fixed
|
||||
2. ~~**WalletService Mock Data**~~ ✅ Connected to gRPC
|
||||
3. ~~**Tree Builder Missing** (NetworkMembership)~~ ✅ Implemented
|
||||
|
||||
### 🟡 Minor Issues:
|
||||
1. **WalletService Mock Data** - نیاز به پاکسازی بعد از اتصال API
|
||||
2. **MudBlazor Warnings** - 113 warning (غیر critical)
|
||||
1. **MudBlazor Warnings** - ~100 warnings (غیر critical)
|
||||
2. **Missing CMS Entities** - Review, ContactMessage, DiscountValidation
|
||||
|
||||
---
|
||||
|
||||
## 📊 Velocity Tracking
|
||||
## 📊 Progress Summary
|
||||
|
||||
### کارهای تمام شده امروز (۱۴ آذر):
|
||||
- ✅ FrontOffice UI: 7 صفحه جدید (Club, Network, Commission)
|
||||
- ✅ FrontOffice.BFF: 3 CQ module جدید
|
||||
- ✅ Build Successful: 0 errors
|
||||
- ✅ Documentation: 2 فایل تحلیل جدید
|
||||
- ✅ FrontOffice Proto Projects: 5 پروژه جدید
|
||||
- ✅ FrontOffice UI Services: 4 سرویس به gRPC وصل شدند
|
||||
- ✅ FrontOffice.BFF Handlers: 15+ handler
|
||||
- ✅ Build Successful: 0 errors در هر دو پروژه
|
||||
|
||||
### تخمین باقیمانده:
|
||||
- **FrontOffice UI Integration**: 2 روز (7 صفحه × 3-4 ساعت)
|
||||
- **Protobuf Fixes**: 1 روز (3 handler)
|
||||
- **WalletService Implementation**: 1 روز (5 متد)
|
||||
- **CMS Entity Creation** (Review, Contact, Discount): 1-2 روز
|
||||
- **Package Purchase UI**: 2 روز (4 صفحه + BFF)
|
||||
- **VAT System**: 2 روز
|
||||
- **RBAC System**: 1.5 هفته
|
||||
|
||||
**Total**: ~6 روز کاری (1.5 هفته)
|
||||
**Total**: ~5-7 روز کاری
|
||||
|
||||
---
|
||||
|
||||
@@ -200,4 +271,3 @@
|
||||
---
|
||||
|
||||
**منتظر بروزرسانی روزانه هستیم** 🚀
|
||||
|
||||
|
||||
Reference in New Issue
Block a user