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:
masoodafar-web
2025-12-04 19:54:08 +03:30
parent 119e870a26
commit 996a6e885b
8 changed files with 997 additions and 498 deletions
+240 -162
View File
@@ -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`