Files
BackOffice/docs/ADMIN-SERVICES.md
T
masoodafar-web b53d9facc9
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
feat(transactions): add ledger transactions feature and update related components
- 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.
2026-06-26 16:38:58 +03:30

28 KiB
Raw Blame History

سرویس‌های 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 GlobalSearchUserContract.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