docs: mark T4.2, T4.3, T4.13, F2, F3 as completed — phase 8f
- PACKAGE-TRANSFORMATION-TASKS.md: add phase 8f section, mark T4.2/T4.3/T4.13 complete - FEATURE-BACKLOG.md: mark F2 (ChangeNetworkParent) + F3 (CalculateOrderPV) complete - NuGet v0.0.188 | CMS:dcd1135 FO:3bffc13 BO:e020354
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 📋 فیچر بکلاگ — RPCهای آماده (بدون UI)
|
||||
|
||||
> تاریخ: ۱۴۰۴/۱۲/۰۶
|
||||
> تاریخ: ۱۴۰۴/۱۲/۱۰
|
||||
> منبع: آدیت gRPC (کامیت `3575e48`) → ۱۲ RPC کامل بدون فرانت
|
||||
> اولویتبندی: بر اساس ارزش کسبوکار + نیازمندی پکیجبیس
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
| # | RPC | تارگت | صفحه | اقدام | تخمین |
|
||||
|---|-----|-------|------|-------|-------|
|
||||
| F1 | `AssignFeatureToMembership` | BackOffice | ClubFeaturesPage.razor | دکمه «اختصاص فیچر به عضو» + ماتریس PackageFeature | ۴ ساعت |
|
||||
| F2 | `ChangeNetworkParent` | BackOffice | UserNetworkInfo.razor | دکمه «جابجایی در شبکه» + مودال انتخاب parent جدید | ۶ ساعت |
|
||||
| F3 | `CalculateOrderPV` | FrontOffice | Checkout.razor + MyPackages.razor | نمایش PV سفارش در چکاوت + PV انباشته در صفحه پکیجها | ۴ ساعت |
|
||||
| F2 | `ChangeNetworkParent` | BackOffice | UserNetworkInfo.razor | ✅ دکمه «تغییر والد» + مودال ChangeParentDialog | BO:`e020354` |
|
||||
| F3 | `CalculateOrderPV` | FrontOffice | Store/OrderDetail.razor | ✅ نمایش PV سفارش + PV هر محصول | FO:`3bffc13` |
|
||||
|
||||
### 🟡 اولویت متوسط — بهبود UX فروشگاه
|
||||
|
||||
@@ -49,8 +49,8 @@
|
||||
|
||||
```
|
||||
F1 (AssignFeatureToMembership) → با T4.6 (ماتریس PackageFeature) ادغام
|
||||
F2 (ChangeNetworkParent) → با تستهای شبکه فاز ۵ ادغام
|
||||
F3 (CalculateOrderPV) → با T4.3 (MyPackages re-purchase) ادغام
|
||||
F2 (ChangeNetworkParent) ✅ تکمیل → BO:`e020354`
|
||||
F3 (CalculateOrderPV) ✅ تکمیل → FO:`3bffc13`
|
||||
```
|
||||
|
||||
### فاز B — بعد از پکیجبیس (Sprint بعدی)
|
||||
@@ -78,4 +78,4 @@ F8 → F12: گزارشدهی و عملیات انبوه
|
||||
|
||||
---
|
||||
|
||||
*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۶*
|
||||
*آخرین بروزرسانی: ۱۴۰۴/۱۲/۱۰ — F2+F3 تکمیل | باقیمانده فاز A: F1*
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# 🔄 نقشهراه تحول پکیجبیس — تسکهای گامبهگام
|
||||
|
||||
> **وضعیت:** در حال اجرا — **فاز ۰-۹ (per-package reports) تکمیل ✅** | NuGet v0.0.187 | تست باقیمانده
|
||||
> **تاریخ:** ۱۴۰۴/۱۲/۰۹
|
||||
> **وضعیت:** در حال اجرا — **فاز ۰-۸f (UI تکمیل) ✅** | NuGet v0.0.188 | تست باقیمانده
|
||||
> **تاریخ:** ۱۴۰۴/۱۲/۱۰
|
||||
> **پیشنیاز:** [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`→`aaaf7fc`
|
||||
> FrontOffice: `b82cac4`→`71f391a`→`0bbc11e`→`d71d463`→`40882c8`→`a956cb9`
|
||||
> BackOffice: `f1b0085`→`89f5241`→`c96377a`→`8be98ae`
|
||||
> CMS: `8b9c317`→`fe3edd1`→`ae92ab8`→`a9cd2fd`→`8e5c7c5`→`ccb938e`→`0002a5a`→`607f791`→`7176fe4`→`d19c569`→`469d97b`→`161f796`→`8446e0e`→`ce8e248`→`7554d70`→`aaaf7fc`→`dcd1135`
|
||||
> FrontOffice: `b82cac4`→`71f391a`→`0bbc11e`→`d71d463`→`40882c8`→`a956cb9`→`3bffc13`
|
||||
> BackOffice: `f1b0085`→`89f5241`→`c96377a`→`8be98ae`→`e020354`
|
||||
|
||||
> ⚠️ **تغییرات v3:** پورسانت per-package، carryover مجزا، SP parameters داینامیک، گزارشدهی FO/BO per-package
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
├─→ مرحله ۲: منطق کسبوکار (۴ روز) ✅ `8e5c7c5`
|
||||
│ └─→ مرحله ۳: بازسازی لایه Package ✅ `ccb938e`
|
||||
│ └─→ مرحله ۴: CRUD + Legacy Fixes ✅ `0002a5a`
|
||||
│ └─→ مرحله UI (۵ روز) ⬜
|
||||
│ └─→ مرحله UI (۵ روز) ✅
|
||||
└─→ مرحله ۳: پورسانت (۴ روز) ✅ `607f791`+`7176fe4`
|
||||
└─→ مرحله ۶: Deprecation cleanup ✅ `d19c569`
|
||||
└─→ مرحله ۷: Migration + Cleanup ✅
|
||||
@@ -35,9 +35,10 @@
|
||||
├─→ 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`
|
||||
└─→ مرحله ۵: تست + استقرار (۳ روز) ⬜
|
||||
└─→ 8f: UI completion ✅ CMS:`dcd1135` FO:`3bffc13` BO:`e020354`
|
||||
└─→ مرحله ۵: تست + استقرار (۳ روز) ⬜
|
||||
|
||||
مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجامشده: ۰→8e (~۱۶ روز)
|
||||
مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجامشده: ۰→8f (~۱۷ روز)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -611,6 +612,28 @@ await connection.ExecuteAsync("CMS.sp_CalculateWeeklyBalances",
|
||||
|
||||
**NuGet:** `0.0.186` → `0.0.187` (همه ریپوها)
|
||||
|
||||
### فاز 8f — UI Completion (T4.2 + T4.3 + T4.13 + F2 + F3) ✅
|
||||
|
||||
> کامیت: CMS `dcd1135` | FO `3bffc13` | BO `e020354`
|
||||
|
||||
**CMS (T4.13 — PackageFeature CRUD):**
|
||||
- Proto: اضافه `repeated int64 feature_ids` به ۴ message (Create/Update Request, Get/GetAll Response)
|
||||
- `CreateNewPackageCommand/Handler`: sync FeatureIds → ساخت `PackageFeature` records
|
||||
- `UpdatePackageCommand/Handler`: sync FeatureIds → حذف قبلیها + ساخت جدید
|
||||
- `GetPackage/GetAllPackageByFilter`: اضافه `.Include(x => x.PackageFeatures)` + map FeatureIds
|
||||
|
||||
**BackOffice (F2 + T4.13):**
|
||||
- **F2:** کامپوننت جدید `ChangeParentDialog.razor/.cs` — مودال جابجایی در شبکه با NewParentId, NewLeg, Reason
|
||||
- **F2:** دکمه «تغییر والد» در `UserNetworkInfo.razor`
|
||||
- **T4.13:** checkbox matrix فیچرها در `CreateDialog` و `UpdateDialog` — بارگذاری از `ConfigurationContractClient`
|
||||
|
||||
**FrontOffice (T4.2 + T4.3 + F3):**
|
||||
- **T4.2:** پرداخت شرطی در `Checkout.razor` بر اساس `SupportsDirectPurchase`/`SupportsDayaPurchase`
|
||||
- **T4.3:** منطق خرید مجدد در `MyPackages.razor` — بارگذاری `MagicWalletStatus` + CTA شرطی + progress bar
|
||||
- **F3:** نمایش PV سفارش در `Store/OrderDetail.razor` — `CalculateOrderPVAsync` + جدول PV هر محصول
|
||||
|
||||
**NuGet:** `0.0.187` → `0.0.188` (همه ریپوها)
|
||||
|
||||
---
|
||||
|
||||
## مرحله ۴ — UI (FrontOffice + BackOffice)
|
||||
@@ -633,34 +656,21 @@ await connection.ExecuteAsync("CMS.sp_CalculateWeeklyBalances",
|
||||
}
|
||||
```
|
||||
|
||||
### T4.2 — مودال پرداخت شرطی
|
||||
### T4.2 — مودال پرداخت شرطی ✅ FO:`3bffc13`
|
||||
|
||||
```razor
|
||||
@if (_selectedPackage.SupportsDirectPurchase)
|
||||
{
|
||||
<MudButton OnClick="PayOnline">پرداخت آنلاین</MudButton>
|
||||
}
|
||||
@if (_selectedPackage.SupportsDayaPurchase)
|
||||
{
|
||||
<MudButton OnClick="PayDaya">اقساط دایا</MudButton>
|
||||
}
|
||||
```
|
||||
**پیادهسازی:**
|
||||
- `Checkout.razor.cs`: اضافه `PackageService` injection، بارگذاری پکیجها با `GetAllPackagesAsync()`
|
||||
- `Checkout.razor`: دکمههای پرداخت شرطی بر اساس `SupportsDirectPurchase` و `SupportsDayaPurchase`
|
||||
- اضافه `DayaLoanPayment()` method + alert برای عدم وجود روش پرداخت
|
||||
- `Pack` record: اضافه `SupportsDirectPurchase` و `SupportsDayaPurchase`
|
||||
|
||||
### T4.3 — MyPackages + Re-Purchase
|
||||
### T4.3 — MyPackages + Re-Purchase ✅ FO:`3bffc13`
|
||||
|
||||
```razor
|
||||
@if (_canRepurchase)
|
||||
{
|
||||
<MudAlert Severity="Severity.Success">
|
||||
🎉 چرخه جادویی تکمیل شد! میتوانید پکیج جدید بخرید.
|
||||
</MudAlert>
|
||||
<MudButton Href="/packages">خرید پکیج جدید</MudButton>
|
||||
}
|
||||
else
|
||||
{
|
||||
<MagicWalletProgress Wallet="@_wallet" Cycle="@_currentCycle" />
|
||||
}
|
||||
```
|
||||
**پیادهسازی:**
|
||||
- `MyPackages.razor.cs`: بارگذاری `MagicWalletStatus` از `WalletService.GetMagicWalletStatusAsync()`
|
||||
- فرمول خرید مجدد: `WalletMode == 0 && PurchaseCycleCount >= 1 && MagicRemainingDeposit == 0`
|
||||
- `MyPackages.razor`: CTA شرطی «🎉 چرخه جادویی تکمیل شد!» + دکمه «خرید پکیج جدید»
|
||||
- بخش پیشرفت کیف پول جادویی: مبلغ واریزی، باقیمانده، اعتبار دریافتی + progress bar
|
||||
|
||||
### T4.8 — FrontOffice: CommissionDashboard per-package (🆕 v3) ✅ FO:`a956cb9`
|
||||
|
||||
@@ -683,18 +693,20 @@ else
|
||||
- `UserPayouts.razor/.cs`: فیلتر PackageSelect + ستون پکیج با MudChip
|
||||
- `BalancesReport.razor`: فیلتر PackageSelect + ستون پکیج با MudChip + mapping `PackageTitle`
|
||||
|
||||
### T4.13 — BackOffice: Package CRUD + Quick Access فیچرها (🆕 v3)
|
||||
### T4.13 — BackOffice: Package CRUD + Quick Access فیچرها (🆕 v3) ✅ CMS:`dcd1135` BO:`e020354`
|
||||
|
||||
> ادمین موقع ساخت/ویرایش پکیج، فیچرها را با checkbox در همان فرم تعیین کند
|
||||
**CMS پیادهسازی:**
|
||||
- Proto: اضافه `repeated int64 feature_ids` به ۴ message (Create/Update Request, Get/GetAll Response)
|
||||
- `CreateNewPackageCommand/Handler`: اضافه `FeatureIds` + ساخت `PackageFeature` records
|
||||
- `UpdatePackageCommand/Handler`: اضافه `FeatureIds` + sync (حذف قبلیها + ساخت جدید)
|
||||
- `GetPackageQueryHandler`: اضافه `.Include(x => x.PackageFeatures)` + map `FeatureIds`
|
||||
- `GetAllPackageByFilterQueryHandler`: اضافه `.Include(x => x.PackageFeatures)` قبل از `PaginatedListAsync`
|
||||
- NuGet: `0.0.187` → `0.0.188`
|
||||
|
||||
```razor
|
||||
@* در PackageCreateDialog / PackageEditDialog: *@
|
||||
<MudText Typo="Typo.h6">فیچرهای پکیج</MudText>
|
||||
@foreach (var feature in _allFeatures)
|
||||
{
|
||||
<MudCheckBox @bind-Checked="feature.IsIncluded" Label="@feature.Title" />
|
||||
}
|
||||
```
|
||||
**BO پیادهسازی:**
|
||||
- `CreateDialog.razor/.cs`: بارگذاری `ClubFeatures` از `ConfigurationContractClient` + checkbox matrix
|
||||
- `UpdateDialog.razor/.cs`: همان pattern + pre-populate از `Model.FeatureIds`
|
||||
- Mapster: `Adapt<UpdatePackageRequest>()` خودکار `FeatureIds` را map میکند
|
||||
|
||||
---
|
||||
|
||||
@@ -733,8 +745,8 @@ else
|
||||
**Migration + سایر:**
|
||||
- [ ] Data Migration — PackageId در رکوردهای قبلی (شامل NetworkWeeklyBalance)
|
||||
- [ ] JWT claims جدید (CanRepurchase, PackageId)
|
||||
- [ ] UI: کاشیهای داینامیک FrontOffice
|
||||
- [ ] UI: ماتریس فیچر + Quick Access BackOffice
|
||||
- [x] UI: کاشیهای داینامیک FrontOffice
|
||||
- [x] UI: ماتریس فیچر + Quick Access BackOffice
|
||||
- [ ] Rollback: بدون data loss
|
||||
|
||||
---
|
||||
@@ -766,4 +778,4 @@ else
|
||||
|
||||
---
|
||||
|
||||
*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۹ — فاز ۰-۸e تکمیل (۲۴ کامیت: ۱۶ CMS + ۶ FO + ۴ BO) | NuGet v0.0.187 | Proto: +package_id in commission messages | FO+BO per-package commission reports کامل | باقیمانده: تست + deploy*
|
||||
*آخرین بروزرسانی: ۱۴۰۴/۱۲/۱۰ — فاز ۰-۸f تکمیل (۲۷ کامیت: ۱۷ CMS + ۷ FO + ۵ BO) | NuGet v0.0.188 | T4.2+T4.3+T4.13+F2+F3 کامل | باقیمانده: تست + deploy*
|
||||
|
||||
Reference in New Issue
Block a user