Files
docs/05-TASKS/CURRENT-SPRINT.md
T
masoodafar-web 201915d8c5 update
2025-12-05 17:28:24 +03:30

15 KiB

🎯 اسپرینت جاری (Current Sprint)

تاریخ شروع: ۱۴ آذر ۱۴۰۴
آخرین بروزرسانی: ۱۵ آذر ۱۴۰۴
مدت: 2 هفته
هدف: تکمیل FrontOffice UI و یکپارچه‌سازی BFF


📋 وضعیت کلی پروژه

Backend:

  • CMS Microservice: ~96% Complete
  • BackOffice.BFF: 100% Complete (35+ Handlers)
  • FrontOffice.BFF: 98% Complete (همه سرویس‌های مورد نیاز مشتری پیاده‌سازی شده)

Frontend:

  • BackOffice UI: ~95% Complete (60+ صفحه)
  • FrontOffice UI: 98% Complete (تمام صفحات مورد نیاز مشتری پیاده‌سازی شده)

🎉 جمع‌بندی نهایی FrontOffice (سمت مشتری)

صفحات پیاده‌سازی شده و متصل به API:

🔐 احراز هویت:

صفحه Route وضعیت
ثبت‌نام (OTP) /register متصل به gRPC
ورود (OTP) Dialog متصل به gRPC
تایید قرارداد /register Step 3 متصل به gRPC

👤 پروفایل:

صفحه Route وضعیت
داشبورد پروفایل /profile متصل به gRPC
ویرایش اطلاعات شخصی /profile/personal متصل به gRPC
مدیریت آدرس‌ها /profile/addresses متصل به gRPC
تنظیمات /profile/settings متصل به gRPC
کیف پول /profile/wallet متصل به gRPC
درخت شبکه /profile/tree متصل به gRPC

🛒 فروشگاه:

صفحه Route وضعیت
لیست محصولات /products متصل به gRPC
جزئیات محصول /products/{id} متصل به gRPC
دسته‌بندی‌ها /categories متصل به gRPC
سبد خرید /cart متصل به gRPC
تایید خرید (VAT) /checkout متصل به gRPC

📦 سفارشات:

صفحه Route وضعیت
لیست سفارشات /orders متصل به gRPC
جزئیات سفارش (VAT) /orders/{id} متصل به gRPC
پیگیری سفارش /order-tracking/{id} متصل به gRPC

💰 کمیسیون:

صفحه Route وضعیت
داشبورد کمیسیون /commission متصل به gRPC
تاریخچه پرداخت‌ها /commission/history متصل به gRPC
تعادل هفتگی /commission/weekly-balance متصل به gRPC

🌐 شبکه:

صفحه Route وضعیت
آمار شبکه /network/statistics متصل به gRPC
درخت شبکه /profile/tree متصل به gRPC

🏆 باشگاه:

صفحه Route وضعیت
عضویت باشگاه /club/membership متصل به gRPC
امکانات باشگاه /club/features Static

📦 پکیج‌ها:

صفحه Route وضعیت
لیست پکیج‌ها /packages متصل به gRPC
پکیج‌های من /my-packages متصل به gRPC
جزئیات پکیج /packages/{id} متصل به gRPC

📄 سایر صفحات:

صفحه Route وضعیت
صفحه اصلی / Complete
درباره ما /about Static
سوالات متداول /faq Static
تماس با ما /contact ⚠️ UI آماده، Mock

⚠️ موارد Mock (نیاز به CMS):

قابلیت وضعیت UI نیاز CMS
فرم تماس با ما UI کامل Entity ContactMessage
نظرات محصول Entity Review
کد تخفیف RPC ValidateDiscountCode

موارد حذف شده (نیاز نیست):

قابلیت دلیل
ChangePassword سیستم فقط OTP دارد، رمز عبور نداریم
ForgotPassword سیستم فقط OTP دارد

نکته: صفحه ChangePassword.razor ساخته شده ولی فعلاً کاربردی ندارد چون لاگین فقط با OTP است.


📊 مقایسه CMS vs FrontOffice.BFF

سرویس‌های CMS که در FrontOffice.BFF پیاده‌سازی شده:

CMS Service FrontOffice.BFF وضعیت
UserService UserService کامل
OtpTokenService (در UserService) کامل
UserAddressService UserAddressService کامل
ProductsService ProductsService کامل
CategoryService CategoriesService کامل
UserCartsService ShopingCartService کامل
UserOrderService UserOrderService کامل
UserWalletService UserWalletService کامل
TransactionsService TransactionService کامل
CommissionService CommissionService کامل
ClubMembershipService ClubMembershipService کامل
NetworkMembershipService NetworkMembershipService کامل
PackageService PackageService کامل
DiscountShopServices DiscountShopService کامل
UserContractService (در UserService - AcceptContract) کامل

سرویس‌های CMS که فقط برای Admin هستند (نیاز مشتری نیست):

CMS Service توضیح
ConfigurationService تنظیمات سیستم (Admin)
ContractService مدیریت قراردادها (Admin)
ManualPaymentService پرداخت دستی (Admin)
RoleService مدیریت نقش‌ها (Admin)
UserRoleService اختصاص نقش (Admin)
TagService مدیریت تگ‌ها (Admin)
ProductTagService اختصاص تگ به محصول (Admin)
PublicMessageService پیام‌های عمومی (Admin)
ProductImagesService مدیریت تصاویر (Admin)
ProductGalleriesService گالری محصول (Admin)
ProductCategoryService دسته‌بندی محصول (Admin)
FactorDetailsService جزئیات فاکتور (Admin)
UserWalletChangeLogService لاگ تغییرات کیف پول (Admin)

2. Package Purchase System - UI Implementation

Status: تکمیل شد
Owner: FrontOffice Team
تاریخ تکمیل: ۱۵ آذر ۱۴۰۴

CMS Status:

  • Entities (5) - PackagePurchase, PackagePurchaseItem, etc.
  • Commands (6) - CreatePackagePurchaseCommand, etc.
  • Queries (3) - GetPackagePurchaseByIdQuery, etc.
  • Protobuf (4 RPCs) - 264 lines

تغییرات انجام شده:

  • PackageService.cs: سرویس gRPC برای دریافت پکیج‌ها
  • RouteConstants.cs: اضافه شدن مسیرهای /packages و /my-packages
  • ConfigureServices.cs: ثبت PackageService در DI
  • Packages.razor: صفحه لیست پکیج‌ها با Grid View، جستجو، و Loading States
  • MyPackages.razor: صفحه پکیج‌های کاربر با نمایش وضعیت خرید

Build Status: FrontOffice Build Succeeded - 0 Errors

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: تکمیل شد
Owner: CMS + BFF + FrontOffice UI
تاریخ تکمیل: ۱۵ آذر ۱۴۰۴

تغییرات انجام شده:

CMS:

  • OrderVAT Entity: قبلاً موجود بود
  • GetUserOrderResponseDto: اضافه شدن VatInfo با فیلدهای VatRate, BaseAmount, VatAmount, TotalAmount, IsPaid
  • GetUserOrderQueryHandler: اضافه شدن .Include(i => i.OrderVAT) و mapping VAT
  • CMS Proto: اضافه شدن OrderVATInfo message

FrontOffice.BFF:

  • Proto: اضافه شدن OrderVATInfo و vat_info field
  • GetUserOrderResponseDto: اضافه شدن OrderVATInfoDto

FrontOffice UI:

  • CheckoutSummary.razor: نمایش جزئیات مالی شامل:
    • جمع کالاها
    • مالیات بر ارزش افزوده (۹%)
    • مبلغ قابل پرداخت
  • OrderDetail.razor: نمایش جزئیات مالی مشابه

Build Status: All Projects - 0 Errors


6. Manual Payment System

Status: 🟡 In Progress (CMS + BackOffice.BFF)
Owner: CMS + BackOffice.BFF
Estimate: 2 روز (UI باقیمانده)

وضعیت فعلی:

  • CMS Domain & Application: ManualPayment + CreateManualPayment/ApproveManualPayment/RejectManualPayment + GetAllManualPayments
  • CMS gRPC: ManualPaymentContract (Create/Approve/Reject/GetAllManualPayments)
  • BackOffice.BFF: 4 Handler (CreateManualPayment, ApproveManualPayment, RejectManualPayment, GetManualPayments)
  • BackOffice UI: صفحه لیست Manual Payments + Dialog جزئیات/Approve/Reject
  • FrontOffice Flow (CreateManualPaymentRequest از سمت کاربر)

7. RBAC System Implementation

Status: 🟡 In Progress (BackOffice.BFF Permission Layer پیاده‌سازی شده؛ CMS + BackOffice UI باقی مانده)
Owner: CMS + BFF Teams
Estimate: 1.5 هفته

Requirements:

  • تعریف Roles و Permissions (CMS Domain/Application)
  • Policy-based Authorization (CMS + BackOffice UI)
  • Admin Panel برای مدیریت دسترسی‌ها
  • BackOffice.BFF: IPermissionService + CheckUserPermissionHandler / GetUserRolesHandler + gRPC PermissionInterceptor

⚠️ Blockers & Dependencies

🟢 Resolved:

  1. Protobuf Mismatch (FrontOffice.BFF ↔ CMS) Fixed
  2. WalletService Mock Data Connected to gRPC
  3. Tree Builder Missing (NetworkMembership) Implemented

🟡 Minor Issues:

  1. MudBlazor Warnings - ~100 warnings (غیر critical)
  2. Missing CMS Entities - Review, ContactMessage, DiscountValidation

📊 Progress Summary

وضعیت نهایی FrontOffice (سمت مشتری):

FrontOffice UI: 98% Complete 🎉

  • 28+ صفحه پیاده‌سازی شده
  • همه سرویس‌ها به gRPC متصل
  • Build موفق بدون Error
  • ⚠️ فقط فرم تماس با ما Mock است (نیاز به CMS entity)

کارهای تمام شده این اسپرینت (۱۴-۱۵ آذر):

روز اول (۱۴ آذر):

  • FrontOffice Proto Projects: 5 پروژه جدید
  • FrontOffice UI Services: 4 سرویس به gRPC وصل شدند
  • FrontOffice.BFF Handlers: 15+ handler
  • Commission Calculation Fix
  • Balance Cap Fix: 300 per leg

روز دوم (۱۵ آذر):

  • Package Purchase UI: Packages.razor + MyPackages.razor
  • VAT System: CheckoutSummary + OrderDetail
  • OrderTracking: Timeline پیگیری سفارش
  • ChangePassword: UI آماده (برای آینده)
  • Documentation: جمع‌بندی نهایی

🗂️ Backlog (کارهای آینده)

Low Priority - FrontOffice:

تسک توضیحات اولویت
Password Authentication اضافه کردن لاگین با رمز عبور علاوه بر OTP 🟡 Low
ForgotPassword بازیابی رمز عبور (نیاز به CMS RPC) 🟡 Low
Contact Form Backend اتصال فرم تماس به CMS 🟡 Low
Product Reviews سیستم نظرات محصول 🟡 Low
Discount Code اعتبارسنجی کد تخفیف 🟡 Low

High Priority - BackOffice (Admin):

تسک توضیحات اولویت
Manual Payment UI صفحه مدیریت پرداخت‌های دستی 🔴 High
RBAC System سیستم کنترل دسترسی 🔴 High

🎯 Definition of Done

برای هر Task:

  • Code Review Complete
  • Build با 0 error
  • Manual Testing انجام شده
  • Documentation بروز شده

📝 نتیجه‌گیری نهایی

سمت مشتری (FrontOffice):

آماده Production - تمام قابلیت‌های اصلی پیاده‌سازی شده

سمت ادمین (BackOffice):

🟡 95% Complete - Manual Payment و RBAC باقیمانده


آخرین بروزرسانی: ۱۵ آذر ۱۴۰۴ 🚀