12 KiB
🎯 اسپرینت جاری (Current Sprint)
تاریخ شروع: ۱۴ آذر ۱۴۰۴
آخرین بروزرسانی: ۱۴ آذر ۱۴۰۴
مدت: 2 هفته
هدف: تکمیل FrontOffice UI و یکپارچهسازی BFF
📋 وضعیت کلی پروژه
Backend:
- ✅ CMS Microservice: ~95% Complete
- ✅ BackOffice.BFF: 100% Complete (35+ Handlers)
- ✅ FrontOffice.BFF: 90% Complete (Proto Projects + Handlers + Mappings)
Frontend:
- ✅ BackOffice UI: ~95% Complete (60+ صفحه)
- 🟢 FrontOffice UI: 85% Complete (24+ صفحه - سرویسها به gRPC وصل شدند)
✅ تکمیل شده (۱۴ آذر ۱۴۰۴)
Proto Projects برای Frontend:
| پروژه | 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 |
FrontOffice UI Services - اتصال به gRPC:
| Service | Status | توضیحات |
|---|---|---|
ClubMembershipService |
✅ Connected | GetMyMembership, ActivateMembership |
NetworkMembershipService |
✅ Connected | GetTree, GetStatistics + Tree Mapping |
CommissionService |
✅ Connected | GetPayouts, GetWeeklyBalances |
WalletService |
✅ Connected | GetBalances, GetTransactions, RequestWithdrawal, GetWithdrawals, GetSettings |
Build Status:
✅ FrontOffice: Build Succeeded - 0 Errors
✅ FrontOffice.BFF: Build Succeeded - 0 Errors
✅ بهروزرسانیهای BackOffice در این اسپرینت
مطابق BACKLOG و ui-status (BackOffice)، تمرکز بخشی از این اسپرینت روی تکمیل BackOffice قبل از ورود جدی به FrontOffice بوده است.
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)
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 متصل است.
🔥 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 تکمیل شود.
2. Package Purchase System - UI Implementation
Status: ⏳ Not Started (Proto Complete ✅)
Owner: FrontOffice Team
Deadline: ۱۸ آذر
CMS Status:
- ✅ Entities (5) -
PackagePurchase,PackagePurchaseItem, etc. - ✅ Commands (6) -
CreatePackagePurchaseCommand, etc. - ✅ Queries (3) -
GetPackagePurchaseByIdQuery, etc. - ✅ Protobuf (4 RPCs) - 264 lines
Pending:
- BFF Handlers (3 modules)
- UI Pages (4 صفحه)
Packages.razor- لیست پکیجهاPurchasePackage.razor- خرید پکیجMyPackages.razor- پکیجهای منPackageDetails.razor- جزئیات پکیج
Reference: 01-BUSINESS/package-purchase-system.md
3. ✅ اصلاح محاسبه کمیسیون هفتگی (بحرانی)
Status: ✅ تکمیل شد
Owner: CMS Team
تاریخ شروع: ۱۴ آذر ۱۴۰۴
تاریخ تکمیل: ۱۴ آذر ۱۴۰۴
شرح مشکلات رفع شده:
| # | مشکل | وضعیت |
|---|---|---|
| 1 | محدودیت لول (15) پیادهسازی نشده | ✅ Fixed |
| 2 | فقط تعادل شخصی حساب میشود (نه زیرمجموعه) | ✅ Fixed |
فرمول پیادهسازی شده:
کمیسیون = (تعادل_شخص + SUM(تعادل_زیرمجموعه تا 15 لول)) × ارزش_هر_تعادل
تسکهای تکمیل شده:
| فاز | شرح | وضعیت |
|---|---|---|
| 1 | اضافه کردن Commission.MaxNetworkLevel به Config |
✅ |
| 2 | اصلاح CalculateWeeklyBalancesCommandHandler - محدودیت لول |
✅ |
| 3 | اصلاح ProcessUserPayoutsCommandHandler - تعادل زیرمجموعه |
✅ |
| 4 | تست و Build | ✅ (0 Errors) |
تغییرات انجام شده:
- Config: اضافه کردن
Commission.MaxNetworkLevel = 15 - CalculateWeeklyBalances: پارامتر
maxLevelبه متدهای بازگشتی اضافه شد - ProcessUserPayouts: متد
SumSubordinateBalancesAsyncبرای جمع تعادل زیرمجموعهها تا 15 لول
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
منطق جدید:
// ✅ سقف روی هر دست جداگانه
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
Status: ⏳ Not Started
Owner: CMS Team
Estimate: 2 روز
Requirements:
- پیادهسازی محاسبه مالیات بر ارزش افزوده (VAT)
- اضافه شدن به Invoice ها
- تنظیمات پویا برای درصد VAT
6. RBAC System Implementation
Status: ⏳ Not Started
Owner: CMS + BFF Teams
Estimate: 1.5 هفته
Requirements:
- تعریف Roles و Permissions
- Policy-based Authorization
- Admin Panel برای مدیریت دسترسیها
⚠️ Blockers & Dependencies
🟢 Resolved:
Protobuf Mismatch (FrontOffice.BFF ↔ CMS)✅ FixedWalletService Mock Data✅ Connected to gRPCTree Builder Missing (NetworkMembership)✅ Implemented
🟡 Minor Issues:
- MudBlazor Warnings - ~100 warnings (غیر critical)
- Missing CMS Entities - Review, ContactMessage, DiscountValidation
📊 Progress Summary
کارهای تمام شده امروز (۱۴ آذر):
- ✅ FrontOffice Proto Projects: 5 پروژه جدید
- ✅ FrontOffice UI Services: 4 سرویس به gRPC وصل شدند
- ✅ FrontOffice.BFF Handlers: 15+ handler
- ✅ Build Successful: 0 errors در هر دو پروژه
تخمین باقیمانده:
- CMS Entity Creation (Review, Contact, Discount): 1-2 روز
- Package Purchase UI: 2 روز (4 صفحه + BFF)
- VAT System: 2 روز
- RBAC System: 1.5 هفته
Total: ~5-7 روز کاری
🎯 Definition of Done
برای هر Task:
- Code Review Complete
- Build با 0 error
- Manual Testing انجام شده
- Documentation بروز شده
- Merged به
developbranch
📝 Daily Standup Notes
۱۴ آذر ۱۴۰۴:
- Yesterday: FrontOffice analysis & UI skeleton
- Today: 7 new pages + 3 BFF modules + Mock services
- Blockers: Protobuf mismatch discovered
- Next: Real API integration tomorrow
منتظر بروزرسانی روزانه هستیم 🚀