diff --git a/roadmap/PACKAGE-TRANSFORMATION-TASKS.md b/roadmap/PACKAGE-TRANSFORMATION-TASKS.md index 9c08ed0..2036ee9 100644 --- a/roadmap/PACKAGE-TRANSFORMATION-TASKS.md +++ b/roadmap/PACKAGE-TRANSFORMATION-TASKS.md @@ -1,10 +1,13 @@ # 🔄 نقشه‌راه تحول پکیج‌بیس — تسک‌های گام‌به‌گام -> **وضعیت:** در حال اجرا — **فاز ۰-۶ تکمیل ✅** | فاز ۷ (UI) در انتظار -> **تاریخ:** ۱۴۰۴/۱۲/۰۸ +> **وضعیت:** در حال اجرا — **فاز ۰-۶ تکمیل ✅** | **فاز ۷a-c تکمیل ✅** | فاز UI باقی‌مانده +> **تاریخ:** ۱۴۰۴/۱۲/۰۹ > **پیش‌نیاز:** [BIZ-PACKAGE-BASED-SYSTEM.md](../business/BIZ-PACKAGE-BASED-SYSTEM.md) **v3** (تکمیل پورسانت per-package) > **هدف:** شکستن **۴۸+ تغییر** به تسک‌های اتمیک با ترتیب اجرا و وابستگی‌ها -> **کامیت‌ها:** `8b9c317` → `fe3edd1` → `ae92ab8` → `a9cd2fd` → `8e5c7c5` → `ccb938e` → `0002a5a` → `607f791` → `7176fe4` → `d19c569` +> **کامیت‌ها:** +> CMS: `8b9c317`→`fe3edd1`→`ae92ab8`→`a9cd2fd`→`8e5c7c5`→`ccb938e`→`0002a5a`→`607f791`→`7176fe4`→`d19c569`→`469d97b`→`161f796`→`8446e0e` +> FrontOffice: `b82cac4`→`71f391a` +> BackOffice: `f1b0085` > ⚠️ **تغییرات v3:** پورسانت per-package، carryover مجزا، SP parameters داینامیک، گزارش‌دهی FO/BO per-package @@ -22,9 +25,13 @@ │ └─→ مرحله UI (۵ روز) ⬜ └─→ مرحله ۳: پورسانت (۴ روز) ✅ `607f791`+`7176fe4` └─→ مرحله ۶: Deprecation cleanup ✅ `d19c569` - └─→ مرحله ۵: تست + استقرار (۳ روز) ⬜ + └─→ مرحله ۷: Migration + Cleanup ✅ + ├─→ 7a: Cosmetic cleanup ✅ CMS:`469d97b` FO:`b82cac4` BO:`f1b0085` + ├─→ 7b: FO RPC migration ✅ CMS:`161f796` FO:`71f391a` + └─→ 7c: Delete deprecated ✅ CMS:`8446e0e` + └─→ مرحله ۵: تست + استقرار (۳ روز) ⬜ -مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجام‌شده: ۰→۴ (~۱۰ روز) +مسیر بحرانی: ۰→۱→۱.۵→۲→۳→۴→UI→۵ = ~۱۷ روز | انجام‌شده: ۰→۷c (~۱۳ روز) ``` --- @@ -422,6 +429,55 @@ await connection.ExecuteAsync("CMS.sp_CalculateWeeklyBalances", --- +## مرحله ۷ — Migration + Cleanup (سه‌گانه) ✅ + +> ✅ تکمیل‌شده | ⏱️ **۱ روز** | ریسک: پایین + +### فاز 7a — Cosmetic Cleanup ✅ + +> کامیت: CMS `469d97b` | FO `b82cac4` | BO `f1b0085` + +**CMS:** +- حذف orphaned `PurchasePackage` handler (۳ فایل، بدون caller) +- فیکس doc-comments: `طلایی` → `پکیج` در ۶ فایل (enums, entities, handlers) + +**FrontOffice:** +- حذف hardcoded `پکیج طلایی` از `MyPackages.razor` و `Packages.razor` +- اضافه `PackageTitle` property به `UserPackageStatusDto` record + +**BackOffice:** +- تغییر label `پکیج طلایی` → `خرید پکیج` در `UserNetworkInfo.razor` + +### فاز 7b — FrontOffice RPC Migration ✅ + +> کامیت: CMS `161f796` | FO `71f391a` + +**CMS:** +- `CustomerPurchasePackage`: embed `orderId` در callback URL قبل از ارسال به درگاه + - `$"{request.CallbackUrl}{separator}orderId={purchase.Id}"` + +**FrontOffice:** +- `Profile/Index.razor.cs`: مهاجرت `InitiateBasePackagePaymentAsync` → `CustomerPurchasePackageAsync` +- `Profile/PaymentCallback.razor`: مهاجرت `VerifyBasePackagePaymentAsync` → `CustomerVerifyPackagePurchaseAsync` +- پارامترهای جدید: `PackageId`, `CallbackUrl`, `PurchaseMethod`, `OrderId`, `Authority`, `Status` + +### فاز 7c — Delete Deprecated Handlers ✅ + +> کامیت: CMS `8446e0e` (14 فایل، 1125 حذف) + +**حذف ۴ handler CQRS (۱۲ فایل):** +- `PurchaseGoldenPackage/` (Command, Handler, Validator) +- `VerifyGoldenPackagePurchase/` (Command, Handler, Validator) +- `InitiateBasePackagePayment/` (Command, Handler, Validator) +- `VerifyBasePackagePayment/` (Command, Handler, Validator) + +**Cleanup:** +- `PackageService.cs`: حذف ۴ gRPC override method (proto RPCs حالا auto-throw `Unimplemented`) +- `PackageProfile.cs`: حذف ۶ Mapster mapping block + ۴ using directive +- Build: 0 Error ✅ + +--- + ## مرحله ۴ — UI (FrontOffice + BackOffice) > ⏱️ **۵ روز** (v3: +۲) | وابستگی: مرحله ۲ + ۳ | ریسک: متوسط @@ -597,4 +653,4 @@ else --- -*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۸ — فاز ۰-۶ تکمیل (۱۰ کامیت) | پورسانت per-package ✅ | deprecation cleanup ✅ | فاز ۷ UI در انتظار* +*آخرین بروزرسانی: ۱۴۰۴/۱۲/۰۹ — فاز ۰-۷c تکمیل (۱۶ کامیت: ۱۳ CMS + ۲ FO + ۱ BO) | ۴ deprecated handler حذف‌شده | FO به Customer* RPCs مهاجرت‌شده | UI باقی‌مانده*