Files
docs/archive/03-BACKEND/CMS/api-coverage.md
T
masoodafar-web 5965b98728 update
2026-01-03 18:27:49 +03:30

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 ضروری):

  1. Transactions - درگاه پرداخت
    • زمان: 3 روز
    • Commands: 7 مورد
    • داکیومنت: در REMAINING-TASKS.md

🟡 اولویت متوسط (برای فروشگاه):

  1. Shopping Cart

    • زمان: 2 روز
    • Commands: 6 مورد
  2. Public Messages

    • زمان: 1 روز
    • Commands: 6 مورد
  3. Products (تکمیل)

    • Tags Management
    • Bulk Operations
    • Low Stock Alerts
    • زمان: 2 روز
  4. Orders (تکمیل)

    • Cancel/Status/Discount
    • Reports
    • زمان: 2 روز

🟢 اولویت پایین:

  1. 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