# 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 ضروری): 1. **Transactions** - درگاه پرداخت - زمان: 3 روز - Commands: 7 مورد - ✅ داکیومنت: در `REMAINING-TASKS.md` ### 🟡 اولویت متوسط (برای فروشگاه): 2. **Shopping Cart** - زمان: 2 روز - Commands: 6 مورد 3. **Public Messages** - زمان: 1 روز - Commands: 6 مورد 4. **Products (تکمیل)** - Tags Management - Bulk Operations - Low Stock Alerts - زمان: 2 روز 5. **Orders (تکمیل)** - Cancel/Status/Discount - Reports - زمان: 2 روز ### 🟢 اولویت پایین: 6. **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