From 38aababc1a4891016cfcacc3be60e98e822ca759 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 26 Feb 2026 21:13:16 +0330 Subject: [PATCH] =?UTF-8?q?docs:=20update=20for=20Phase=208e=20=E2=80=94?= =?UTF-8?q?=20per-package=20commission=20reports?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PACKAGE-TRANSFORMATION-TASKS: mark T4.8-T4.12 completed, add Phase 8e section, update tree diagram, bump to NuGet v0.0.187 - OVERVIEW-03-CHANGELOG: add Phase 8e entry, mark commission per-package items done, update timeline & summary table --- overview/OVERVIEW-03-CHANGELOG.md | 22 ++++-- roadmap/PACKAGE-TRANSFORMATION-TASKS.md | 96 +++++++++++++------------ 2 files changed, 66 insertions(+), 52 deletions(-) diff --git a/overview/OVERVIEW-03-CHANGELOG.md b/overview/OVERVIEW-03-CHANGELOG.md index 0beb8a6..fab50f2 100644 --- a/overview/OVERVIEW-03-CHANGELOG.md +++ b/overview/OVERVIEW-03-CHANGELOG.md @@ -1,7 +1,7 @@ # 📜 تاریخچه کارهای انجام‌شده > **همه فعالیت‌های پروژه به صورت بولت با توضیح یک‌خطی و درصد تکمیل** -> **آخرین بروزرسانی:** اسفند ۱۴۰۴ (بروزرسانی: فاز ۸b-۸d — BO CRUD + FO Customer RPCs + Proto cleanup | NuGet v0.0.186) +> **آخرین بروزرسانی:** اسفند ۱۴۰۴ (بروزرسانی: فاز ۸e — Per-Package Commission Reports | NuGet v0.0.187) --- @@ -12,10 +12,10 @@ | **BackOffice** | 61 | 61 | **100%** | | **FrontOffice** | 40 | 40 | **100%** | | **CMS Core** | 72 | 72 | **100%** | -| **Package-Based System** | 30 | 30 | **100%** | +| **Package-Based System** | 35 | 35 | **100%** | | **Deployment** | 22 | 21 | **95%** | | **Migration** | 16 | 16 | **100%** | -| **مجموع** | **241** | **240** | **99%** | +| **مجموع** | **246** | **245** | **99%** | --- @@ -307,12 +307,19 @@ - ✅ Add MagicWallet per-package values to ConfigurationService (Multiplier, MaxDeposit, MaxCredit) - ✅ تأیید: صفر رفرنس فعال به ۹ SystemConstants منسوخ — dead code آماده حذف -### Phase 7 — UI ⬜ (در انتظار) +### Phase 7 — UI ✅ (گزارش per-package) - ⬜ FrontOffice: کاشی‌های داینامیک پکیج - ⬜ FrontOffice: MyPackages + re-purchase -- ⬜ FrontOffice: Commission Dashboard per-package -- ⬜ BackOffice: Package CRUD UI -- ⬜ BackOffice: فیلتر پکیج در گزارش‌ها +- ✅ FrontOffice: Commission Dashboard per-package — فیلتر dropdown پکیج + ستون پکیج + MudChip (دسکتاپ + موبایل) +- ✅ FrontOffice: WeeklyBalance per-package — فیلتر MudSelect پکیج + MudChip اطلاعات هفته +- ✅ BackOffice: فیلتر پکیج در گزارش‌ها — PackageSelect component + UserPayouts + BalancesReport + +### Phase 8e — Per-Package Commission Reports ✅ (CMS:`aaaf7fc` FO:`a956cb9` BO:`8be98ae`) +- ✅ Proto: اضافه `package_id` فیلتر به ۴ request + `package_id`/`package_title` به ۴ response model +- ✅ CMS: اضافه PackageId فیلتر به ۴ query + handler + ۳ DTO + CommissionProfile mapping +- ✅ BO: کامپوننت PackageSelect + فیلتر و ستون پکیج در UserPayouts + BalancesReport +- ✅ FO: فیلتر و ستون پکیج در CommissionDashboard + WeeklyBalance +- ✅ NuGet: `0.0.186` → `0.0.187` --- @@ -332,3 +339,4 @@ | اسفند ۱۴۰۴ (هفته ۱-۲) | 🪄 کیف‌پول جادویی (فاز 1-6) + اصلاح VAT 10% | 96% | | اسفند ۱۴۰۴ (هفته ۳) | 🚀 فعال‌سازی درگاه + بهبود UI ادمین + مرج پروداکشن | 97% | | اسفند ۱۴۰۴ (هفته ۴) | 📦 تحول پکیج‌بیس فاز ۰-۶ (Domain → Migration → Business → Package → CRUD → Commission per-pkg → Deprecation) | 97% | +| اسفند ۱۴۰۴ (هفته ۵) | 📦 فاز 8e: گزارش‌های پورسانت per-package (Proto + CMS + BO + FO) | 98% | diff --git a/roadmap/PACKAGE-TRANSFORMATION-TASKS.md b/roadmap/PACKAGE-TRANSFORMATION-TASKS.md index bbf5f3f..8a3d09f 100644 --- a/roadmap/PACKAGE-TRANSFORMATION-TASKS.md +++ b/roadmap/PACKAGE-TRANSFORMATION-TASKS.md @@ -1,13 +1,13 @@ # 🔄 نقشه‌راه تحول پکیج‌بیس — تسک‌های گام‌به‌گام -> **وضعیت:** در حال اجرا — **فاز ۰-۸d تکمیل ✅** | NuGet v0.0.186 | UI باقی‌مانده -> **تاریخ:** ۱۴۰۴/۱۲/۰۸ +> **وضعیت:** در حال اجرا — **فاز ۰-۹ (per-package reports) تکمیل ✅** | NuGet v0.0.187 | تست باقی‌مانده +> **تاریخ:** ۱۴۰۴/۱۲/۰۹ > **پیش‌نیاز:** [BIZ-PACKAGE-BASED-SYSTEM.md](../business/BIZ-PACKAGE-BASED-SYSTEM.md) **v3** (تکمیل پورسانت per-package) > **هدف:** شکستن **۴۸+ تغییر** به تسک‌های اتمیک با ترتیب اجرا و وابستگی‌ها > **کامیت‌ها:** -> CMS: `8b9c317`→`fe3edd1`→`ae92ab8`→`a9cd2fd`→`8e5c7c5`→`ccb938e`→`0002a5a`→`607f791`→`7176fe4`→`d19c569`→`469d97b`→`161f796`→`8446e0e`→`ce8e248`→`7554d70` -> FrontOffice: `b82cac4`→`71f391a`→`0bbc11e`→`d71d463`→`40882c8` -> BackOffice: `f1b0085`→`89f5241`→`c96377a` +> CMS: `8b9c317`→`fe3edd1`→`ae92ab8`→`a9cd2fd`→`8e5c7c5`→`ccb938e`→`0002a5a`→`607f791`→`7176fe4`→`d19c569`→`469d97b`→`161f796`→`8446e0e`→`ce8e248`→`7554d70`→`aaaf7fc` +> FrontOffice: `b82cac4`→`71f391a`→`0bbc11e`→`d71d463`→`40882c8`→`a956cb9` +> BackOffice: `f1b0085`→`89f5241`→`c96377a`→`8be98ae` > ⚠️ **تغییرات v3:** پورسانت per-package، carryover مجزا، SP parameters داینامیک، گزارش‌دهی FO/BO per-package @@ -34,9 +34,10 @@ ├─→ 8b: BO CRUD expansion ✅ CMS:`ce8e248` BO:`89f5241` ├─→ 8c: FO Package pages ✅ FO:`d71d463` └─→ 8d: Proto cleanup ✅ CMS:`7554d70` FO:`40882c8` BO:`c96377a` - └─→ مرحله ۵: تست + استقرار (۳ روز) ⬜ + └─→ 8e: Per-package reports ✅ CMS:`aaaf7fc` FO:`a956cb9` BO:`8be98ae` + └─→ مرحله ۵: تست + استقرار (۳ روز) ⬜ -مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجام‌شده: ۰→8d (~۱۵ روز) +مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجام‌شده: ۰→8e (~۱۶ روز) ``` --- @@ -583,6 +584,33 @@ await connection.ExecuteAsync("CMS.sp_CalculateWeeklyBalances", **NuGet:** `0.0.185` → `0.0.186` (همه ریپوها) +### فاز 8e — Per-Package Commission Reports ✅ + +> کامیت: CMS `aaaf7fc` | FO `a956cb9` | BO `8be98ae` + +**Proto (commission.proto):** +- اضافه `package_id` فیلتر به ۴ request message: `GetUserCommissionPayoutsRequest`, `GetUserWeeklyBalancesRequest`, `GetMyCommissionPayoutsRequest`, `GetMyWeeklyBalancesRequest` +- اضافه `package_id` + `package_title` به ۴ response model: `UserCommissionPayoutModel`, `UserWeeklyBalanceModel`, `CustomerCommissionPayoutModel`, `CustomerWeeklyBalanceModel` + +**CMS (12 فایل):** +- ۴ Query record: اضافه `public long? PackageId { get; init; }` +- ۴ Handler: اضافه `.Include(x => x.Package)` + فیلتر `Where(x => x.PackageId == request.PackageId.Value)` + map `PackageId`/`PackageTitle` +- ۳ Response DTO: اضافه `PackageId` + `PackageTitle` +- `CommissionProfile.cs`: تنظیم mapping‌های Mapster برای admin + customer + +**BackOffice (6 فایل):** +- کامپوننت جدید `PackageSelect.razor/.cs`: dropdown قابل استفاده مجدد با بارگذاری پکیج‌ها از `PackageContract` +- `UserPayouts.razor/.cs`: فیلتر PackageSelect + ستون پکیج با MudChip +- `BalancesReport.razor`: فیلتر PackageSelect + ستون پکیج با MudChip + mapping PackageTitle + +**FrontOffice (7 فایل):** +- `CommissionDtos.cs`: اضافه `PackageId` + `PackageTitle` به `CommissionPayoutDto` و `WeeklyBalanceDto` +- `CommissionService.cs`: اضافه پارامتر `packageId` به `GetMyCommissionPayoutsAsync` و `GetMyWeeklyBalanceAsync` +- `CommissionDashboardPage.razor/.cs`: فیلتر dropdown پکیج + ستون «پکیج» با MudChip (دسکتاپ + موبایل) +- `WeeklyBalancePage.razor/.cs`: فیلتر MudSelect پکیج + نمایش MudChip پکیج در بخش اطلاعات هفته + +**NuGet:** `0.0.186` → `0.0.187` (همه ریپوها) + --- ## مرحله ۴ — UI (FrontOffice + BackOffice) @@ -634,48 +662,26 @@ else } ``` -### T4.8 — FrontOffice: CommissionDashboard per-package (🆕 v3) +### T4.8 — FrontOffice: CommissionDashboard per-package (🆕 v3) ✅ FO:`a956cb9` -**فایل:** `FrontOffice/src/.../Pages/Commission/CommissionDashboardPage.razor` +**پیاده‌سازی:** +- `CommissionDtos.cs`: اضافه `PackageId` + `PackageTitle` به `CommissionPayoutDto` و `WeeklyBalanceDto` +- `CommissionService.cs`: اضافه پارامتر `packageId` به `GetMyCommissionPayoutsAsync` و `GetMyWeeklyBalanceAsync` +- `CommissionDashboardPage.razor`: اضافه dropdown فیلتر پکیج + ستون «پکیج» با MudChip + نمایش پکیج در card موبایل +- `CommissionDashboardPage.razor.cs`: inject `PackageService`، فیلد `_filterPackageId`، بارگذاری لیست پکیج‌ها -```razor -@* v3: کارت‌های خلاصه بر اساس پکیج *@ - - @foreach (var summary in _packageSummaries) - { - - - @summary.PackageTitle - -

زیرمجموعه: @summary.DownlineCount نفر

-

تیم اول: @summary.LeftLegMembers | تیم دوم: @summary.RightLegMembers

-

تعادل: @summary.TotalBalances

-

💰 پاداش: @summary.CommissionFormatted

-
-
-
- } -
-📦 مجموع پاداش هفته: @_totalCommission -``` +### T4.9 — FrontOffice: WeeklyBalance per-package (🆕 v3) ✅ FO:`a956cb9` -### T4.9 — FrontOffice: WeeklyBalance per-package (🆕 v3) +**پیاده‌سازی:** +- `WeeklyBalancePage.razor`: اضافه MudSelect فیلتر پکیج کنار WeekSelector + نمایش MudChip پکیج در بخش اطلاعات هفته +- `WeeklyBalancePage.razor.cs`: inject `PackageService`، فیلد `_filterPackageId`، ارسال به `CommissionService.GetMyWeeklyBalanceAsync` -> تعادل تیم اول/دوم به تفکیک هر پکیج نمایش داده شود +### T4.10-T4.12 — BackOffice: گزارش‌های پورسانت per-package (🆕 v3) ✅ BO:`8be98ae` -### T4.10-T4.12 — BackOffice: گزارش‌های پورسانت per-package (🆕 v3) - -**تغییرات مشترک:** -- اضافه dropdown فیلتر پکیج (همه / پایه / نقره‌ای / ...) -- اضافه ستون پکیج در جدول‌ها -- CSV export شامل ستون پکیج - -| صفحه | تغییر | -|------|-------| -| Commission Dashboard | فیلتر + خلاصه per-package | -| Weekly Reports | فیلتر + CSV per-package | -| Balances Report | فیلتر + ستون پکیج | -| User Payouts | ستون پکیج + فیلتر | +**پیاده‌سازی:** +- کامپوننت جدید `PackageSelect.razor/.cs`: dropdown قابل استفاده مجدد با بارگذاری پکیج‌ها از `PackageContract` +- `UserPayouts.razor/.cs`: فیلتر PackageSelect + ستون پکیج با MudChip +- `BalancesReport.razor`: فیلتر PackageSelect + ستون پکیج با MudChip + mapping `PackageTitle` ### T4.13 — BackOffice: Package CRUD + Quick Access فیچرها (🆕 v3) @@ -760,4 +766,4 @@ else --- -*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۸ — فاز ۰-۸d تکمیل (۲۰ کامیت: ۱۵ CMS + ۵ FO + ۳ BO) | NuGet v0.0.186 | Proto cleanup: -4 RPCs -8 messages | FO+BO CRUD کامل per-package | باقی‌مانده: UI per-package reports + تست + deploy* +*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۹ — فاز ۰-۸e تکمیل (۲۴ کامیت: ۱۶ CMS + ۶ FO + ۴ BO) | NuGet v0.0.187 | Proto: +package_id in commission messages | FO+BO per-package commission reports کامل | باقی‌مانده: تست + deploy*