b53d9facc9
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
- Introduced new ledger transactions page in NavMenu.razor and AppBreadcrumb.razor. - Enhanced ReportLabels.cs with transaction status and type labels. - Updated ConfigureService.cs to include TransactionsContractClient for gRPC. - Bumped Foursat.CMSMicroservice.Protobuf version to 0.0.203 for compatibility with new features. - Added deployment notes for June 1405 regarding read-only reports and proto updates.
28 KiB
28 KiB
سرویسهای BackOffice (پنل ادمین)
این سند تمام سرویسهایی را که BackOffice (فرانت ادمین) به CMS از طریق gRPC Gateway (GwUrl) فراخوانی میکند، به ترتیب Use Case فهرست میکند.
- مسیر wrapper سرویسها:
BackOffice/src/BackOffice/Services/ - ثبت gRPC:
BackOffice/src/BackOffice/Common/Configure/ConfigureService.cs - تاریخ: ۱۴۰۵/۰۳/۱۷ (بروز: خرداد ۱۴۰۵ — گزارشهای read-only + proto 0.0.201)
۱. ورود و احراز هویت ادمین
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 1.1 | OtpTokenContract.CreateNewOtpToken |
OtpTokenContract |
/Login/ (LoginPage) |
ارسال OTP ورود ادمین |
| 1.2 | UserContract.VerifyOtpToken |
UserContract |
/VerifyCodePage/{Mobile} |
تأیید OTP و دریافت JWT |
| 1.3 | OtpTokenContract.CreateNewOtpToken (resend) |
OtpTokenContract |
/VerifyCodePage/{Mobile} |
ارسال مجدد OTP |
| 1.4 | AuthorizationService.HasPermissionAsync |
— (JWT Role/Claim) | NavMenu, صفحات محافظتشده |
کنترل نمایش منو بر اساس نقش (فعلاً role-based، نه API) |
| 1.5 | AppTokenProvider / TokenHandler |
— (localStorage) | سراسری | attach کردن Bearer token به همه gRPC callها |
۲. داشبورد
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 2.1 | UserContract.GetAllUserByFilter |
UserContract |
/ (Index) |
شمارش کاربران |
| 2.2 | ProductsContract.GetAllProductsByFilter |
ProductsContract |
/ |
شمارش محصولات |
| 2.3 | PackageContract.GetAllPackageByFilter |
PackageContract |
/ |
شمارش پکیجها |
| 2.4 | CategoryContract.GetAllCategoryByFilter |
CategoryContract |
/ |
شمارش دستهبندیها |
| 2.5 | CommissionContract.GetAvailableWeeks |
CommissionContract |
/ |
هفته جاری کمیسیون |
| 2.6 | CommissionContract.GetWeeklyCommissionPool |
CommissionContract |
/ |
وضعیت pool هفته جاری |
| 2.7 | ClubMembershipContract.GetAllClubMemberships |
ClubMembershipContract |
/ |
آمار اعضای باشگاه |
| 2.8 | UserOrderContract.GetAllUserOrderByFilter |
UserOrderContract |
/ |
سفارشهای اخیر |
| 2.9 | IDiscountOrderService.GetOrdersAsync |
DiscountOrderContract |
Dashboard/DiscountShopWidget |
ویجت سفارشهای فروشگاه تخفیفی |
| 2.10 | CommissionContract.GetWithdrawalRequests |
CommissionContract |
NavMenu |
badge درخواستهای برداشت معلق |
| 2.11 | GlobalSearch — UserContract.GetAllUserByFilter |
UserContract |
MainLayout/GlobalSearch |
جستجوی سریع کاربر + ناوبری صفحات |
۳. مدیریت کاربران
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 3.1 | UserContract.GetAllUserByFilter |
UserContract |
/UserPage/, UserAutoComplete, GlobalSearch |
لیست/جستجوی کاربران |
| 3.2 | UserContract.DeleteUser |
UserContract |
/UserPage/ |
حذف کاربر |
| 3.3 | Export users | UserContract.GetAllUserByFilter |
/UserPage/ |
خروجی CSV کاربران |
۴. نقشها و دسترسیها
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 4.1 | RoleContract.GetAllRoleByFilter |
RoleContract |
/RolePage/, RoleAutoComplete |
لیست نقشها |
| 4.2 | RoleContract.CreateNewRole |
RoleContract |
Role/Components/CreateDialog |
ایجاد نقش |
| 4.3 | RoleContract.UpdateRole |
RoleContract |
Role/Components/UpdateDialog |
ویرایش نقش |
| 4.4 | RoleContract.DeleteRole |
RoleContract |
/RolePage/ |
حذف نقش |
| 4.5 | RolePermissionsDialog |
— (UI فقط) | /RolePage/ |
ویرایش permissionها — هنوز به API وصل نشده |
۵. نقش کاربر و آدرس
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 5.1 | UserRoleContract.GetAllUserRoleByFilter |
UserRoleContract |
/UserRolePage/{UserId} |
نقشهای یک کاربر |
| 5.2 | UserRoleContract.CreateNewUserRole |
UserRoleContract |
CreateDialog, UserRoleDialog |
تخصیص نقش |
| 5.3 | UserRoleContract.UpdateUserRole |
UserRoleContract |
UpdateDialog | ویرایش نقش کاربر |
| 5.4 | UserRoleContract.DeleteUserRole |
UserRoleContract |
/UserRolePage/{UserId} |
حذف نقش کاربر |
| 5.5 | RoleContract.GetAllRoleByFilter |
RoleContract |
UserRoleDialog, RoleTitleColumn |
نمایش عنوان نقش |
| 5.6 | UserAddressContract.GetAllUserAddressByFilter |
UserAddressContract |
/UserAddressPage/{UserId} |
آدرسهای کاربر |
| 5.7 | UserAddressContract.CreateNewUserAddress |
UserAddressContract |
CreateDialog | ثبت آدرس |
| 5.8 | UserAddressContract.UpdateUserAddress |
UserAddressContract |
UpdateDialog | ویرایش آدرس |
| 5.9 | UserAddressContract.DeleteUserAddress |
UserAddressContract |
/UserAddressPage/{UserId} |
حذف آدرس |
۶. پکیجها
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 6.1 | PackageContract.GetAllPackageByFilter |
PackageContract |
/PackagePage/, PackageSelect, ManualPaymentDialog |
لیست پکیجها |
| 6.2 | PackageContract.CreateNewPackage |
PackageContract |
Package/Components/CreateDialog |
ایجاد پکیج |
| 6.3 | PackageContract.UpdatePackage |
PackageContract |
Package/Components/UpdateDialog |
ویرایش پکیج |
| 6.4 | PackageContract.DeletePackage |
PackageContract |
/PackagePage/ |
حذف پکیج |
| 6.5 | ConfigurationContract.GetClubFeatures |
ConfigurationContract |
Create/Update Dialog | انتخاب featureهای باشگاه مرتبط با پکیج |
۷. فروشگاه اصلی — محصولات و دستهبندی
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 7.1 | ProductsContract.GetAllProductsByFilter |
ProductsContract |
/ProductsPage/, BulkEdit, AutoComplete |
لیست محصولات |
| 7.2 | ProductsContract.CreateNewProducts |
ProductsContract |
Products/Components/CreateDialog |
ایجاد محصول |
| 7.3 | ProductsContract.UpdateProducts |
ProductsContract |
UpdateDialog | ویرایش محصول |
| 7.4 | ProductsContract.DeleteProducts |
ProductsContract |
/ProductsPage/ |
حذف محصول |
| 7.5 | ProductsContract.ToggleProductStatus |
ProductsContract |
/ProductsPage/, BulkEdit |
فعال/غیرفعال |
| 7.6 | ProductsContract.BulkUpdateProductPrices |
ProductsContract |
/ProductsBulkEditPage/ |
ویرایش گروهی قیمت |
| 7.7 | ProductsContract.GetProductGallery / Add/Remove Image |
ProductsContract |
GalleryDialog |
گالری تصاویر محصول |
| 7.8 | ProductsContract.GetProducts / UpdateProductCategories |
ProductsContract |
/ProductCategoriesPage/{ProductId} |
drag-drop دستهبندی محصول |
| 7.9 | CategoryContract.GetAllCategoryByFilter |
CategoryContract |
/CategoryPage/, AutoComplete |
لیست دستهها |
| 7.10 | CategoryContract.GetCategory / Create / Update / Delete |
CategoryContract |
CategoryMainPage, Dialogs | CRUD دستهبندی |
| 7.11 | ProductsContract.GetProductsForCategory / UpdateCategoryProducts |
ProductsContract |
/CategoryProductsPage/{CategoryId} |
drag-drop محصولات یک دسته |
۸. انبارداری (Inventory)
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 8.1 | InventoryContract.GetAllWarehouses |
InventoryContract |
/InventoryPage/, Warehouses, LowStock |
لیست انبارها |
| 8.2 | InventoryContract.GetAllInventoryItems |
InventoryContract |
/InventoryPage/ |
موجودی کالا |
| 8.3 | InventoryContract.GetLowStockItems |
InventoryContract |
/InventoryPage/, /InventoryLowStockPage/ |
اقلام کمموجود |
| 8.4 | InventoryContract.AddStock |
InventoryContract |
AddStockDialog |
ورود کالا به انبار |
| 8.5 | InventoryContract.AdjustStock |
InventoryContract |
AdjustStockDialog |
تعدیل موجودی |
| 8.6 | InventoryContract.RecordLoss |
InventoryContract |
RecordLossDialog |
ثبت ضایعات |
| 8.7 | InventoryContract.CreateWarehouse |
InventoryContract |
CreateWarehouseDialog |
ایجاد انبار |
| 8.8 | InventoryContract.UpdateInventorySettings |
InventoryContract |
InventorySettingsDialog |
تنظیمات انبار |
| 8.9 | InventoryContract.GetStockMovements |
InventoryContract |
/InventoryMovementsPage/ |
تاریخچه جابجایی موجودی |
۹. سفارشهای فروشگاه اصلی
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 9.1 | UserOrderContract.GetAllUserOrderByFilter |
UserOrderContract |
/OrdersPage/, /UserOrderPage/{UserId}, SalesReports |
لیست سفارشها |
| 9.2 | UserOrderContract.GetUserOrder |
UserOrderContract |
OrderDetailsDialog, Index | جزئیات سفارش |
| 9.3 | UserOrderContract.UpdateUserOrder |
UserOrderContract |
UserOrderDetailsDialog, ChangeOrderStatus | ویرایش سفارش / tracking |
| 9.4 | UserOrderContract.UpdateOrderStatus |
UserOrderContract |
ChangeOrderStatusDialog | تغییر وضعیت تحویل |
| 9.5 | UserOrderContract.CancelOrder |
UserOrderContract |
CancelOrderDialog | لغو سفارش |
| 9.6 | UserOrderContract.DeleteUserOrder |
UserOrderContract |
/UserOrderPage/{UserId} |
حذف سفارش |
| 9.7 | UserOrderContract.ApplyDiscountToOrder |
UserOrderContract |
ApplyDiscountDialog | اعمال تخفیف روی سفارش |
۱۰. پرداخت دستی و تراکنشها
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 10.1 | ManualPaymentContract.GetAllManualPayments |
ManualPaymentContract |
/payment/manual-payments |
لیست پرداختهای دستی |
| 10.2 | ManualPaymentContract.CreateManualPayment |
ManualPaymentContract |
ManualPaymentDialog |
ثبت پرداخت دستی (مثلاً Daya) |
| 10.3 | ManualPaymentContract.ApproveManualPayment |
ManualPaymentContract |
ManualPayments, Dialog | تأیید پرداخت |
| 10.4 | ManualPaymentContract.RejectManualPayment |
ManualPaymentContract |
ManualPayments, Dialog | رد پرداخت |
| 10.5 | PaymentTransactionContract.GetAllPaymentTransactionByFilter |
PaymentTransactionContract |
/payment/transactions |
گزارش read-only تراکنش درگاه |
| 10.6 | UserPackagePurchaseContract.GetAllUserPackagePurchaseByFilter |
UserPackagePurchaseContract |
/club/purchases |
گزارش خرید پکیج |
| 10.7 | ClubMembershipCycleContract.GetAllClubMembershipCycleByFilter |
ClubMembershipCycleContract |
/club/cycles |
گزارش دوره عضویت |
| 10.8 | ClubMembershipCycleHistoryContract.GetAllClubMembershipCycleHistoryByFilter |
ClubMembershipCycleHistoryContract |
/club/history (زیرتب دوره) |
تاریخچه تغییرات دوره |
۱۱. کیف پول و تاریخچه
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 11.1 | UserWalletContract.GetAllUserWalletByFilter |
UserWalletContract |
/wallets |
لیست کیف پول کاربران |
| 11.2 | UserWalletHistoryContract.GetAllUserWalletHistoryByFilter |
UserWalletHistoryContract |
/wallets (تب تاریخچه) |
لاگ تغییرات کیف پول |
۱۲. قراردادهای کاربران
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 12.1 | UserContractContract.GetAllUserContractByFilter |
UserContractContract |
/contracts |
لیست قراردادهای امضاشده (اصلی / باشگاه) |
| 12.2 | Download PDF | — (local JS) | /contracts |
دانلود PDF قرارداد ذخیرهشده |
۱۳. کمیسیون و پاداش
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 13.1 | CommissionContract.GetAvailableWeeks |
CommissionContract |
/commission/dashboard, WeekNumberPicker |
انتخاب هفته |
| 13.2 | CommissionContract.GetWeeklyCommissionPool |
CommissionContract |
/commission/dashboard |
جزئیات pool هفتگی |
| 13.3 | CommissionContract.TriggerWeeklyCalculation |
CommissionContract |
Dashboard, WorkerControl | اجرای دستی محاسبه هفتگی |
| 13.4 | CommissionContract.GetAllWeeklyPools |
CommissionContract |
/commission/reports |
گزارش poolهای هفتگی |
| 13.5 | CommissionContract.GetUserCommissionPayouts |
CommissionContract |
/commission/payouts |
payoutهای کاربران |
| 13.6 | CommissionContract.ProcessWithdrawal |
CommissionContract |
UserPayouts, WithdrawalRequests | پردازش/واریز برداشت |
| 13.7 | CommissionContract.BulkCreditPayouts |
CommissionContract |
/commission/payouts |
واریز گروهی payoutها |
| 13.8 | CommissionContract.GetWithdrawalRequests |
CommissionContract |
/commission/withdrawals, NavMenu |
درخواستهای برداشت کاربران |
| 13.9 | CommissionContract.ApproveWithdrawal |
CommissionContract |
WithdrawalRequests | تأیید درخواست برداشت |
| 13.10 | CommissionContract.RejectWithdrawal |
CommissionContract |
WithdrawalRequests | رد درخواست برداشت |
| 13.11 | CommissionContract.GetWithdrawalReports |
CommissionContract |
/commission/withdrawal-reports |
گزارش برداشتها |
| 13.12 | CommissionContract.GetUserWeeklyBalances |
CommissionContract |
/network/balances |
گزارش بالانس هفتگی کاربران |
| 13.13 | CommissionContract.GetWorkerStatus |
CommissionContract |
/system/worker-control |
وضعیت worker محاسبه |
| 13.14 | CommissionContract.GetWorkerExecutionLogs |
CommissionContract |
/system/worker-control |
لاگ اجرای worker |
۱۴. شبکه فروش (MLM)
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 14.1 | NetworkMembershipContract.GetNetworkTree |
NetworkMembershipContract |
/network/tree |
درخت شبکه (admin view) |
| 14.2 | NetworkMembershipContract.GetUserNetwork |
NetworkMembershipContract |
/network/user-info/{UserId} |
اطلاعات شبکه یک کاربر |
| 14.3 | NetworkMembershipContract.GetNetworkMembershipHistory |
NetworkMembershipContract |
UserNetworkInfo | تاریخچه عضویت شبکه |
| 14.4 | NetworkMembershipContract.ChangeNetworkParent |
NetworkMembershipContract |
ChangeParentDialog |
تغییر والد در درخت |
| 14.5 | NetworkMembershipContract.GetNetworkStatistics |
NetworkMembershipContract |
/network/statistics |
آمار کلی شبکه (admin) |
۱۵. باشگاه مشتریان
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 15.1 | ClubMembershipContract.GetAllClubMemberships |
ClubMembershipContract |
/club/members, Index |
لیست اعضا |
| 15.2 | ClubMembershipContract.ActivateClubMembership |
ClubMembershipContract |
ActivateClubDialog |
فعالسازی دستی عضویت |
| 15.3 | ClubMembershipContract.DeactivateClubMembership |
ClubMembershipContract |
DeactivateClubDialog |
غیرفعالسازی |
| 15.4 | ClubMembershipContract.GetClubMembershipHistory |
ClubMembershipContract |
/club/history (زیرتب عضویت) |
گزارش تاریخچه عضویت |
| 15.5 | ClubMembershipContract.GetClubStatistics |
ClubMembershipContract |
/club/statistics |
آمار باشگاه |
| 15.6 | ConfigurationContract.GetClubFeatures |
ConfigurationContract |
/club/features |
لیست featureهای باشگاه |
| 15.7 | ClubMembershipContract.GetUserClubFeatures |
ClubMembershipContract |
/club/features |
featureهای یک کاربر |
| 15.8 | ClubMembershipContract.ToggleUserClubFeature |
ClubMembershipContract |
/club/features |
فعال/غیرفعال feature برای کاربر |
۱۶. فروشگاه تخفیفی (Discount Shop)
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 16.1 | IDiscountProductService — CRUD |
DiscountProductContract |
/discount-products |
مدیریت محصولات تخفیفی |
| 16.2 | IDiscountCategoryService — CRUD |
DiscountCategoryContract |
/discount-categories |
مدیریت دستهبندی تخفیفی |
| 16.3 | IDiscountOrderService.GetOrdersAsync |
DiscountOrderContract.GetAllDiscountOrders |
/discount-orders, Dashboard widget |
لیست سفارشها (admin) |
| 16.4 | IDiscountOrderService.GetByIdAsync |
DiscountOrderContract |
OrderDetailsDialog | جزئیات سفارش |
| 16.5 | IDiscountOrderService.UpdateStatusAsync |
DiscountOrderContract |
Orders page, OrderDetailsDialog | تغییر وضعیت پرداخت/ارسال |
| 16.6 | IDiscountOrderService.GetSalesReportAsync |
DiscountOrderContract |
/discount-sales-reports |
گزارش فروش |
| 16.7 | DiscountProductContract.GetDiscountProducts |
DiscountProductContract |
DiscountProductsAutoComplete |
autocomplete محصول |
۱۷. تگ محصولات
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 17.1 | ITagService.GetTagsAsync |
TagContract |
/tags |
لیست تگها |
| 17.2 | ITagService.CreateAsync / UpdateAsync / DeleteAsync |
TagContract |
TagEditDialog, TagManagement | CRUD تگ |
| 17.3 | ITagService.GetProductTagsAsync |
ProductTagContract |
AssignTagsDialog | تگهای یک محصول |
| 17.4 | ITagService.AssignToProductAsync / RemoveProductTagAsync |
ProductTagContract |
AssignTagsDialog, Discount products | تخصیص/حذف تگ |
۱۸. پیامهای عمومی
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 18.1 | IPublicMessageService.GetMessagesAsync |
PublicMessageContract |
/public-messages |
لیست پیامها |
| 18.2 | IPublicMessageService.GetByIdAsync |
PublicMessageContract |
PublicMessages | جزئیات |
| 18.3 | IPublicMessageService.CreateAsync / UpdateAsync |
PublicMessageContract |
MessageFormDialog | ایجاد/ویرایش |
| 18.4 | IPublicMessageService.PublishAsync / ArchiveAsync |
PublicMessageContract |
PublicMessages | انتشار/بایگانی |
| 18.5 | IPublicMessageService.DeleteAsync |
PublicMessageContract |
PublicMessages | حذف |
۱۹. بلاگ
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 19.1 | IBlogPostService.GetAllAsync |
BlogPostContract |
/blog/posts |
لیست پستها |
| 19.2 | IBlogPostService.GetByIdAsync |
BlogPostContract |
BlogPostEditDialog | جزئیات پست |
| 19.3 | IBlogPostService.CreateAsync / UpdateAsync |
BlogPostContract |
BlogPostEditDialog | ایجاد/ویرایش |
| 19.4 | IBlogPostService.DeleteAsync |
BlogPostContract |
BlogPostManagement | حذف |
| 19.5 | IBlogPostService.PublishAsync / ArchiveAsync |
BlogPostContract |
BlogPostManagement | انتشار/بایگانی |
| 19.6 | IBlogCategoryService — CRUD |
BlogCategoryContract |
/blog/categories |
مدیریت دستهبندی بلاگ |
۲۰. مدیریت محتوای سایت
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 20.1 | ISitePageSettingsService.GetAllAsync |
SitePageSettingsContract |
/content/page-settings |
لیست صفحات (landing, about, contact, licenses) |
| 20.2 | ISitePageSettingsService.GetByKeyAsync |
SitePageSettingsContract |
PageSettings dialogs | جزئیات یک صفحه |
| 20.3 | ISitePageSettingsService.SaveSettingsAsync |
SitePageSettingsContract |
PageSettingsEditDialog | ذخیره hero + JSON تنظیمات |
| 20.4 | ISitePageSettingsService.SaveImageAsync / DeleteImageAsync |
SitePageSettingsContract |
PageImagesDialog | مدیریت تصاویر گروهبندیشده |
| 20.5 | ISitePageService — CRUD sections |
SitePageContract |
/content/pages |
صفحات داینامیک قدیمی (section-based) |
۲۱. تنظیمات سیستم و سلامت
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 21.1 | ConfigurationContract.GetAllConfigurations |
ConfigurationContract |
/system/configuration |
خواندن key-value تنظیمات (کمیسیون، شبکه، باشگاه، VAT…) |
| 21.2 | ConfigurationContract.CreateOrUpdateConfiguration |
ConfigurationContract |
/system/configuration |
ذخیره تنظیمات |
| 21.3 | HealthContract.GetSystemHealth |
HealthContract |
/system/health |
وضعیت سلامت سرویسها |
| 21.4 | AlertsMonitoring |
— (mock) | /system/alerts |
TODO — API هشدار هنوز وصل نشده |
۲۲. نسخه اپلیکیشن
| # | سرویس / متد | gRPC Contract | صفحه / کامپوننت | کاربرد |
|---|---|---|---|---|
| 22.1 | IAppVersionService.GetAllAsync |
AppVersionContract |
/settings/app-versions |
لیست نسخه FrontOffice/App |
| 22.2 | IAppVersionService.GetByNameAsync |
AppVersionContract |
AppVersions | جزئیات یک app |
| 22.3 | IAppVersionService.UpdateAsync |
AppVersionContract.UpdateAppVersion |
AppVersions dialog | بهروزرسانی نسخه + force update |
۲۳. کامپوننتهای مشترک (AutoComplete / Hub)
| کامپوننت | Contract | کاربرد |
|---|---|---|
UserAutoComplete |
UserContract |
جستجوی کاربر در فرمها |
ProductsAutoComplete |
ProductsContract |
جستجوی محصول |
CategoryAutoComplete / MultiSelect |
CategoryContract |
انتخاب دسته |
PackageSelect |
PackageContract |
انتخاب پکیج |
WeekNumberPicker |
CommissionContract |
انتخاب هفته |
DiscountProductsAutoComplete |
DiscountProductContract |
جستجوی محصول تخفیفی |
Hub pages (ClubHub, DiscountShopHub, SystemHub, OrdersHub, BlogHub) |
— | مسیریابی tab-based؛ RPC در child component |
۲۴. سرویسهای ثبتشده ولی بدون استفاده / ناقص
| سرویس / صفحه | وضعیت |
|---|---|
IBlogPostImageService (BlogPostImageContract) |
ثبت در DI؛ هیچ صفحهای inject نمیکند |
/payment/transactions |
UI آماده؛ LoadData خالی — API وصل نشده |
RolePermissionsDialog |
UI permission؛ ذخیره در backend TODO |
AuthorizationService |
فقط JWT role؛ Permission API از CMS/BFF TODO |
/system/alerts |
داده mock؛ AlertContract وجود ندارد |
نمودار جریان ورود ادمین
flowchart LR
A[LoginPage] -->|CreateNewOtpToken| B[SMS OTP]
B --> C[VerifyCodePage]
C -->|VerifyOtpToken| D[JWT in localStorage]
D --> E[All gRPC via TokenHandler]
فهرست gRPC Contractهای فعال BackOffice
| Contract | Wrapper / استفاده مستقیم |
|---|---|
OtpTokenContract |
Login |
UserContract |
Login, Users, Dashboard, Search |
RoleContract |
Roles, UserRoles |
UserRoleContract |
UserRole pages |
UserAddressContract |
UserAddress pages |
PackageContract |
Packages, ManualPayment |
ProductsContract |
Products, Categories drag-drop |
CategoryContract |
Categories |
UserOrderContract |
Orders |
ManualPaymentContract |
Manual payments |
UserWalletContract |
Wallet management |
UserWalletHistoryContract |
Wallet change log |
UserContractContract |
Signed contracts |
CommissionContract |
Commission, Network balances, Worker |
NetworkMembershipContract |
Network tree/info |
ClubMembershipContract |
Club members/features |
ConfigurationContract |
System config, Club features, Package |
DiscountProductContract |
DiscountProductService |
DiscountCategoryContract |
DiscountCategoryService |
DiscountOrderContract |
DiscountOrderService |
TagContract / ProductTagContract |
TagService |
PublicMessageContract |
PublicMessageService |
InventoryContract |
Inventory pages |
BlogPostContract |
BlogPostService |
BlogCategoryContract |
BlogCategoryService |
BlogPostImageContract |
BlogPostImageService (unused) |
SitePageSettingsContract |
SitePageSettingsService |
SitePageContract |
SitePageService |
AppVersionContract |
AppVersionService |
HealthContract |
Health dashboard |
مقایسه با FrontOffice
| موضوع | FrontOffice (مشتری) | BackOffice (ادمین) |
|---|---|---|
| Auth | OTP + JWT (UserContract) | OTP + JWT (همان flow) |
| Orders | Customer RPC | Admin filter + status management |
| Discount Shop | User orders + checkout | Full CRUD + admin order management |
| Commission | Read-only (my payouts) | Full admin (calculation, approval, reports) |
| Network | My tree only | Full tree + change parent |
| Content | Read page settings | Edit page settings + blog + public messages |
| Wallet | My balances | All users wallet + history log |
مرجع مشابه برای فرانت مشتری: FrontOffice/docs/CUSTOMER-SERVICES.md
یادداشت deploy (خرداد ۱۴۰۵)
| گام | جزئیات |
|---|---|
| Proto | Foursat.CMSMicroservice.Protobuf 0.0.201 |
| CMS | deploy WebApi (شامل CQRS + gRPC گزارشها) |
| BackOffice | NuGet 0.0.201 یا ProjectReference در monorepo |
| FrontOffice | redeploy لازم نیست — روی 0.0.199 میماند؛ RPCهای admin در FO register نشده |
گزارشهای read-only (بخش ۱۰ و ۱۵): فقط فیلتر + grid + summary — بدون CRUD، detail dialog، یا لینک cross-page.
مستندات فنی کامل: totalDoc/technical/TECH-08-SESSION-LOG-202606.md