12 KiB
CMS API Coverage - مقایسه CMS با BackOffice.BFF
تاریخ بررسی: 2025-12-01
هدف: شناسایی APIهای CMS که در BackOffice.BFF پوشش داده نشدهاند
📊 خلاصه وضعیت
| دسته | تعداد Proto در CMS | پوشش در BFF | وضعیت |
|---|---|---|---|
| User Management | 1 | ✅ کامل | 100% |
| Network & Tree | 1 | ✅ کامل | 100% |
| Club Membership | 1 | ✅ کامل | 100% |
| Commission & Wallet | 3 | ✅ کامل | 100% |
| Products | 6 | ⚠️ جزئی | 70% |
| Orders | 2 | ⚠️ جزئی | 60% |
| Configuration | 1 | ✅ کامل | 100% |
| Roles & Permissions | 2 | ✅ کامل | 100% |
| Cart | 1 | ❌ خیر | 0% |
| Transactions | 1 | ❌ خیر | 0% |
| Contracts | 2 | ❌ خیر | 0% |
| OTP | 1 | ✅ کامل | 100% |
| Public Messages | 1 | ❌ خیر | 0% |
✅ APIهای کامل پوشش داده شده (در BFF موجود است)
1. User Management (user.proto)
- ✅ CreateNewUserCommand
- ✅ UpdateUserCommand
- ✅ DeleteUserCommand
- ✅ GetAllUserByFilterQuery
- ✅ GetUserQuery
- ✅ SendOtpCommand
- ✅ VerifyOtpCodeCommand
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: Create, Update, GetAll, Get (بدون Delete)
- Inspector: فقط GetAll, Get
2. Network Management (networkmembership.proto)
- ✅ GetNetworkTreeQuery
- ✅ GetNetworkHistoryQuery
- ✅ GetNetworkStatisticsQuery
- ✅ GetUserNetworkInfoQuery
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه
- Admin: همه
- Inspector: فقط مشاهده (همه)
3. Club Membership (clubmembership.proto)
- ✅ ActivateClubCommand
- ✅ GetAllClubMembersQuery
- ✅ GetClubStatisticsQuery
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه
- Admin: ActivateClub, GetAll, Get
- Inspector: فقط GetAll, Get
4. Commission & Balance (commission.proto, userwallet.proto, userwalletchangelog.proto)
- ✅ GetAllWeeklyPoolsQuery
- ✅ GetWeeklyPoolQuery
- ✅ GetUserWeeklyBalancesQuery
- ✅ GetUserPayoutsQuery
- ✅ ApproveWithdrawalCommand
- ✅ RejectWithdrawalCommand
- ✅ ProcessWithdrawalCommand
- ✅ GetWithdrawalRequestsQuery
- ✅ TriggerWeeklyCalculationCommand (Worker)
- ✅ GetWorkerStatusQuery
- ✅ GetWorkerExecutionLogsQuery
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات + Trigger Worker
- Admin: Approve/Reject Withdrawal, GetAll queries
- Inspector: فقط Get queries (بدون Approve/Reject)
5. Configuration (configuration.proto)
- ✅ CreateOrUpdateConfigurationCommand
- ✅ DeactivateConfigurationCommand
- ✅ GetAllConfigurationsQuery
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: فقط GetAll (بدون Update)
- Inspector: فقط GetAll
6. Roles & Permissions (role.proto, userrole.proto)
- ✅ CreateNewRoleCommand
- ✅ UpdateRoleCommand
- ✅ DeleteRoleCommand
- ✅ GetAllRoleByFilterQuery
- ✅ GetRoleQuery
- ✅ CreateNewUserRoleCommand
- ✅ UpdateUserRoleCommand
- ✅ DeleteUserRoleCommand
- ✅ GetAllUserRoleByFilterQuery
- ✅ GetUserRoleQuery
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: ❌ هیچ دسترسی (فقط SuperAdmin)
- Inspector: ❌ هیچ دسترسی
⚠️ APIهای جزئی پوشش داده شده
7. Products (products.proto, category.proto, tag.proto, package.proto, productgallerys.proto, productimages.proto)
✅ موجود در BFF:
- CreateNewProductsCommand
- UpdateProductsCommand
- DeleteProductsCommand
- GetAllProductsByFilterQuery
- GetProductsQuery
- GetProductsForCategoryQuery
- AddProductImageCommand
- RemoveProductImageCommand
- GetProductGalleryQuery
⚠️ موجود در CMS ولی نه در BFF:
Products:
- BulkUpdateProductsCommand (بهروزرسانی دستهای)
- GetProductBySkuQuery (جستجو با SKU)
- ToggleProductStatusCommand (فعال/غیرفعال)
- GetLowStockProductsQuery (محصولات کم موجودی)
Category:
- CreateNewCategoryCommand ✅
- UpdateCategoryCommand ✅
- DeleteCategoryCommand ✅
- GetAllCategoryByFilterQuery ✅
- GetCategoriesQuery ✅
- GetCategoryQuery ✅
- UpdateCategoryProductsCommand ✅ (ارتباط Product-Category)
- UpdateProductCategoriesCommand ✅
Tags:
- CreateTagCommand ❌
- UpdateTagCommand ❌
- DeleteTagCommand ❌
- GetAllTagsQuery ❌
- AssignTagToProductCommand ❌ (ارتباط Product-Tag)
Package (بستهبندی):
- CreateNewPackageCommand ✅
- UpdatePackageCommand ✅
- DeletePackageCommand ✅
- GetAllPackageByFilterQuery ✅
- GetPackageQuery ✅
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: همه عملیات محصولات (Create, Update, Delete)
- Inspector: فقط Get queries
8. Orders (userorder.proto, factordetails.proto)
✅ موجود در BFF:
- CreateNewUserOrderCommand
- UpdateUserOrderCommand
- DeleteUserOrderCommand
- GetAllUserOrderByFilterQuery
- GetUserOrderQuery
⚠️ موجود در CMS ولی نه در BFF:
UserOrder:
- CancelOrderCommand (لغو سفارش)
- UpdateOrderStatusCommand (تغییر وضعیت)
- GetOrderByInvoiceNumberQuery (جستجو با شماره فاکتور)
- GetOrdersByDateRangeQuery (گزارش بازه زمانی)
- CalculateOrderPVQuery (محاسبه PV سفارش)
- ApplyDiscountToOrderCommand (اعمال تخفیف)
FactorDetails:
- GetFactorDetailsQuery (جزئیات کامل فاکتور)
- UpdateFactorDetailCommand (ویرایش آیتم فاکتور)
- RemoveFactorDetailCommand (حذف آیتم فاکتور)
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: همه عملیات (Create, Update, Cancel, Status)
- Inspector: فقط Get queries
❌ APIهای بدون پوشش (باید اضافه شوند)
9. Shopping Cart (usercarts.proto)
وضعیت: هیچ Handler در BFF وجود ندارد
باید اضافه شود:
- AddToCartCommand
- UpdateCartItemCommand
- RemoveFromCartCommand
- GetUserCartQuery
- ClearCartCommand
- MergeCartCommand (برای کاربران مهمان → لاگین)
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: مشاهده سبد همه کاربران
- Admin: مشاهده سبد همه کاربران
- Inspector: مشاهده فقط (بدون ویرایش)
اولویت: 🟡 متوسط (برای فروشگاه ضروری است)
10. Transactions (transactions.proto)
وضعیت: هیچ Handler در BFF وجود ندارد
باید اضافه شود:
- CreateTransactionCommand (ثبت تراکنش پرداخت)
- GetTransactionQuery
- GetAllTransactionsByFilterQuery
- GetTransactionByReferenceQuery (جستجو با شماره پیگیری)
- GetUserTransactionsQuery (تراکنشهای یک کاربر)
- VerifyTransactionCommand (تأیید پرداخت از درگاه)
- RefundTransactionCommand (بازگشت وجه)
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات + Refund
- Admin: مشاهده تراکنشها (بدون Refund)
- Inspector: فقط مشاهده
اولویت: 🔴 بالا (برای درگاه پرداخت ضروری است)
11. Contracts (contract.proto, usercontract.proto)
وضعیت: هیچ Handler در BFF وجود ندارد
باید اضافه شود:
Contract:
- CreateContractCommand
- UpdateContractCommand
- DeleteContractCommand
- GetAllContractsQuery
- GetContractQuery
- ActivateContractCommand
- DeactivateContractCommand
UserContract:
- AssignContractToUserCommand
- GetUserContractsQuery
- GetContractUsersQuery
- RevokeUserContractCommand
توضیح: Contracts احتمالاً برای قراردادهای عضویت یا خریدهای خاص است.
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: Assign, Get queries
- Inspector: فقط Get queries
اولویت: 🟢 پایین (در صورت نیاز بیزینسی)
12. Public Messages (public_messages.proto)
وضعیت: هیچ Handler در BFF وجود ندارد
باید اضافه شود:
- CreatePublicMessageCommand (ایجاد اعلان عمومی)
- UpdatePublicMessageCommand
- DeletePublicMessageCommand
- GetAllPublicMessagesQuery
- GetPublicMessageQuery
- PublishMessageCommand (انتشار اعلان)
- ArchiveMessageCommand (بایگانی)
توضیح: پیامهای عمومی برای اطلاعرسانی به تمام کاربران
تنظیمات دسترسی پیشنهادی:
- SuperAdmin: همه عملیات
- Admin: Create, Update, Publish
- Inspector: فقط Get queries
اولویت: 🟡 متوسط
13. User Address (useraddress.proto)
وضعیت: در BFF موجود است ✅
- ✅ CreateNewUserAddressCommand
- ✅ UpdateUserAddressCommand
- ✅ DeleteUserAddressCommand
- ✅ GetAllUserAddressByFilterQuery
- ✅ GetUserAddressQuery
📋 خلاصه کارهای باقیمانده در CMS
🔴 اولویت بالا (برای Launch ضروری):
- Transactions - درگاه پرداخت
- زمان: 3 روز
- Commands: 7 مورد
- ✅ داکیومنت: در
REMAINING-TASKS.md
🟡 اولویت متوسط (برای فروشگاه):
-
Shopping Cart
- زمان: 2 روز
- Commands: 6 مورد
-
Public Messages
- زمان: 1 روز
- Commands: 6 مورد
-
Products (تکمیل)
- Tags Management
- Bulk Operations
- Low Stock Alerts
- زمان: 2 روز
-
Orders (تکمیل)
- Cancel/Status/Discount
- Reports
- زمان: 2 روز
🟢 اولویت پایین:
- Contracts (در صورت نیاز بیزینسی)
- زمان: 2 روز
🎯 نقشه راه پیشنهادی
هفته 1: Transaction System (درگاه پرداخت)
- CMS: 7 Command/Query
- BFF: 7 Handler
- BackOffice: صفحه تراکنشها
- ✅ داکیومنت
هفته 2: Shopping Cart
- CMS: 6 Command/Query
- BFF: 6 Handler
- BackOffice: صفحه مدیریت سبدهای خرید کاربران
- ✅ داکیومنت
هفته 3: Products & Orders تکمیل
- Tags Management
- Bulk Operations
- Order Cancel/Status
- ✅ داکیومنت
هفته 4: Public Messages
- Create/Publish Messages
- Notification System
- ✅ داکیومنت
📊 تخمین زمان کل
| فیچر | CMS | BFF | BackOffice | جمع |
|---|---|---|---|---|
| Transactions | 3 روز | 2 روز | 2 روز | 1 هفته |
| Shopping Cart | 2 روز | 1 روز | 2 روز | 1 هفته |
| Products/Orders تکمیل | 2 روز | 1 روز | 2 روز | 1 هفته |
| Public Messages | 1 روز | 1 روز | 1 روز | 3 روز |
| جمع کل | 3.5 هفته |
✅ چکلیست قبل از شروع هر فیچر
- بیزینس در
network-club-commission-system-v1.1.mdمستند شده؟ - Proto file در CMS تعریف شده؟
- Commands/Queries در CMS پیادهسازی شده؟
- Migration اجرا شده؟
- Handlers در BFF اضافه شده؟
- Controllers در BFF تعریف شده؟
- صفحات در BackOffice ایجاد شده؟
- تستهای دستی انجام شده؟
- ✅ داکیومنت نهایی (مقایسه کد با داکیومنت)
آخرین بهروزرسانی: 2025-12-01