16 KiB
16 KiB
آدیت سرویسهای gRPC — CMS
تاریخ: ۱۴۰۴/۰۴
هدف: شناسایی RPCهایی که از هیچکدام از فرانتها (FrontOffice مشتری + BackOffice ادمین) فراخوانی نمیشوند
📊 خلاصه آمار
| متریک | تعداد |
|---|---|
| کل فایلهای proto | 43 (بدون google/) |
| کل سرویسهای gRPC | 42 |
| کل RPC متدها | 342 |
| استفادهشده در FrontOffice | 92 |
| استفادهشده در BackOffice | 159 |
| استفادهشده (مجموع یکتا) | 217 |
| استفادهنشده از فرانتها | 125 |
| ↳ استفادهشده داخلی CMS | 101 |
| ↳ کد مُرده واقعی | 24 |
🔴 دسته A — کد مُرده واقعی (Dead Code)
این RPCها نه از فرانتها فراخوانی میشوند و نه در کد CMS پیادهسازی/استفاده شدهاند (فقط ≤2 رفرنس = فقط کد proto-generated).
| # | RPC | فایل Proto | وضعیت |
|---|---|---|---|
| 1 | AssignFeatureToMembership |
clubmembership.proto | Stub — هرگز پیادهسازی نشد |
| 2 | BulkAddStock |
inventory.proto | Stub — هرگز پیادهسازی نشد |
| 3 | BulkAdjustStock |
inventory.proto | Stub — 0 رفرنس |
| 4 | BulkUpdateProductStock |
products.proto | Stub — هرگز پیادهسازی نشد |
| 5 | CalculateOrderPV |
userorder.proto | Stub — هرگز پیادهسازی نشد |
| 6 | ChangeNetworkParent |
networkmembership.proto | Stub — هرگز از فرانت استفاده نشد |
| 7 | CreateNewFileInfo |
fms.proto | 0 رفرنس — سرویس FMS هرگز ساخته نشد |
| 8 | CreateNewOrderForCustomer |
userorder.proto | Stub — سفارش مشتری از مسیر دیگر |
| 9 | CustomerReorderPreviousOrder |
userorder.proto | Stub — فیچر تکرار سفارش پیادهسازی نشد |
| 10 | CustomerTrackOrder |
userorder.proto | Stub — فیچر ردیابی سفارش پیادهسازی نشد |
| 11 | DeactivateConfiguration |
configuration.proto | Stub — هرگز استفاده نشد |
| 12 | DeleteCity |
City.proto | Stub — حذف شهر نیاز نیست |
| 13 | DeleteFileInfo |
fms.proto | 0 رفرنس — سرویس FMS هرگز ساخته نشد |
| 14 | GetCategoryByIdForCustomer |
category.proto | Stub — مشتری از GetAllCategoriesForCustomer استفاده میکند |
| 15 | GetConfigurationByKey |
configuration.proto | Stub — فقط GetAllConfigurations استفاده میشود |
| 16 | GetConfigurationHistory |
configuration.proto | Stub — تاریخچه تنظیمات پیادهسازی نشد |
| 17 | GetInventorySummary |
inventory.proto | Stub — داشبورد خلاصه انبار پیادهسازی نشد |
| 18 | GetLowStockProducts |
products.proto | Stub — از GetLowStockItems (inventory) استفاده میشود |
| 19 | GetOrdersByDateRange |
userorder.proto | Stub — از فیلتر GetAllUserOrderByFilter استفاده میشود |
| 20 | GetServiceHealth |
health.proto | Stub — فقط GetSystemHealth استفاده میشود |
| 21 | GetStockValueReport |
inventory.proto | Stub — گزارش ارزش موجودی پیادهسازی نشد |
| 22 | SubmitOrderForCustomer |
userorder.proto | Stub — سفارش مشتری از مسیر دیگر |
| 23 | UpdateCity |
City.proto | Stub — ویرایش شهر نیاز نیست |
| 24 | UpdateCustomerSettings |
user.proto | Stub — تنظیمات مشتری پیادهسازی نشد |
🟡 دسته B — استفاده داخلی CMS (Internal Only)
این RPCها از فرانتها فراخوانی نمیشوند ولی در کد بکند CMS فعال هستند (background services, handlers, internal flows). حذف نشوند!
B1. احراز هویت و کاربر (user.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
CreateNewUser |
175 | ثبتنام کاربر — اصلیترین فلو |
GetJwtToken |
38 | صدور توکن JWT |
AdminGetJwtToken |
19 | لاگین ادمین |
SetPasswordForUser |
24 | تنظیم رمز عبور |
ChangeCustomerPassword |
5 | تغییر رمز مشتری |
UploadCustomerAvatar |
6 | آپلود آواتار |
GetCustomerProfile |
13 | پروفایل مشتری |
GetCustomerReferrals |
13 | لیست معرفیشدگان |
GetCustomerSettings |
13 | تنظیمات مشتری |
B2. بستهها و پرداخت (package.proto / manualpayment.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
PurchaseGoldenPackage |
21 | خرید بسته طلایی — فلو فعال |
VerifyGoldenPackagePurchase |
22 | تأیید خرید بسته طلایی |
CustomerPurchasePackage |
3 | خرید مشتری (proto-generated + service) |
CustomerVerifyPackagePurchase |
3 | تأیید خرید مشتری |
GetCustomerPurchaseHistory |
13 | تاریخچه خرید |
ProcessManualMembershipPayment |
20 | پرداخت دستی عضویت |
B3. شبکه و عضویت (networkmembership.proto / clubmembership.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
JoinNetwork |
14 | پیوستن به شبکه — فراخوانی خودکار |
RemoveFromNetwork |
14 | حذف از شبکه |
B4. کمیسیون (commission.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
CalculateWeeklyBalances |
26 | سرویس پسزمینه هفتگی |
CalculateWeeklyCommissionPool |
22 | سرویس پسزمینه هفتگی |
ProcessUserPayouts |
15 | پردازش پرداختها |
GetCommissionPayoutHistory |
20 | تاریخچه پرداخت کمیسیون |
B5. انبارداری (inventory.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
ConfirmSale |
10 | تأیید فروش — فلو سفارش |
ReserveStock |
12 | رزرو موجودی — فلو سفارش |
ReleaseReservation |
10 | آزادسازی رزرو |
ProcessReturn |
6 | پردازش مرجوعی |
DeleteWarehouse |
18 | حذف انبار |
GetInventoryByProduct |
26 | موجودی بر اساس محصول |
GetInventoryItem |
19 | آیتم انبار |
GetWarehouse |
18 | دریافت انبار |
SetDefaultWarehouse |
18 | تنظیم انبار پیشفرض |
UpdateWarehouse |
18 | بروزرسانی انبار |
GetStockMovementsByInventoryItem |
17 | حرکات موجودی |
B6. تراکنشها (transactions.proto)
| RPC | رفرنس CMS | علت |
|---|---|---|
CreateNewTransactions |
26 | ایجاد تراکنش — فلو پرداخت |
DeleteTransactions |
23 | حذف تراکنش |
GetAllTransactionsByFilter |
25 | لیست تراکنشها |
CustomerPaymentVerification |
3 | تأیید پرداخت مشتری |
GetCustomerTransaction |
27 | تراکنش مشتری |
GetCustomerTransactionsByFilter |
14 | فیلتر تراکنشها |
RefundTransaction |
31 | استرداد تراکنش |
UpdateTransactions |
23 | بروزرسانی تراکنش |
VerifyTransaction |
24 | تأیید تراکنش |
B7. سایر CRUD داخلی
| RPC | فایل Proto | رفرنس CMS | علت |
|---|---|---|---|
CreateNewContract |
contract.proto | 26 | قراردادها |
UpdateContract |
contract.proto | 23 | بروزرسانی قرارداد |
DeleteContract |
contract.proto | 23 | حذف قرارداد |
GetContract |
contract.proto | 19 | دریافت قرارداد |
GetAllContractByFilter |
contract.proto | 25 | لیست قراردادها |
CreateNewUserContract |
usercontract.proto | 26 | قرارداد کاربر |
UpdateUserContract |
usercontract.proto | 23 | بروزرسانی |
DeleteUserContract |
usercontract.proto | 23 | حذف |
GetUserContract |
usercontract.proto | 19 | دریافت |
CreateNewFactorDetails |
factordetails.proto | 26 | جزئیات فاکتور |
UpdateFactorDetails |
factordetails.proto | 23 | بروزرسانی |
DeleteFactorDetails |
factordetails.proto | 23 | حذف |
GetFactorDetails |
factordetails.proto | 19 | دریافت |
GetAllFactorDetailsByFilter |
factordetails.proto | 24 | لیست |
CreateNewProductCategory |
productcategory.proto | 26 | دستهبندی محصول |
UpdateProductCategory |
productcategory.proto | 23 | بروزرسانی |
DeleteProductCategory |
productcategory.proto | 23 | حذف |
GetProductCategory |
productcategory.proto | 19 | دریافت |
GetAllProductCategoryByFilter |
productcategory.proto | 24 | لیست |
CreateNewProductGalleries |
productgalleries.proto | 15 | گالری محصول |
UpdateProductGalleries |
productgalleries.proto | 14 | بروزرسانی |
DeleteProductGalleries |
productgalleries.proto | 14 | حذف |
GetProductGalleries |
productgalleries.proto | 15 | دریافت |
GetAllProductGalleriesByFilter |
productgalleries.proto | 15 | لیست |
CreateNewProductImages |
productimages.proto | 26 | تصاویر محصول |
UpdateProductImages |
productimages.proto | 23 | بروزرسانی |
DeleteProductImages |
productimages.proto | 23 | حذف |
GetProductImages |
productimages.proto | 19 | دریافت |
GetAllProductImagesByFilter |
productimages.proto | 24 | لیست |
CreateNewUserWallet |
userwallet.proto | 54 | ایجاد کیف پول |
UpdateUserWallet |
userwallet.proto | 46 | بروزرسانی |
DeleteUserWallet |
userwallet.proto | 46 | حذف |
GetUserWallet |
userwallet.proto | 41 | دریافت |
CreateNewUserWalletChangeLog |
userwalletchangelog.proto | 26 | لاگ تغییرات |
UpdateUserWalletChangeLog |
userwalletchangelog.proto | 23 | بروزرسانی |
DeleteUserWalletChangeLog |
userwalletchangelog.proto | 23 | حذف |
GetUserWalletChangeLog |
userwalletchangelog.proto | 21 | دریافت |
GetAllOtpTokenByFilter |
otptoken.proto | 24 | لیست OTP |
GetAllUserCartsByFilter |
usercarts.proto | 7 | لیست سبدها |
AddNewUserCart |
usercarts.proto | 9 | افزودن سبد |
DeleteUserCart |
usercarts.proto | 7 | حذف سبد |
UpdateUserCart |
usercarts.proto | 10 | بروزرسانی سبد |
AddDiscountProductImage |
discountproduct.proto | 10 | تصویر محصول تخفیفی |
UpdateDiscountProductImage |
discountproduct.proto | 9 | بروزرسانی |
DeleteDiscountProductImage |
discountproduct.proto | 9 | حذف |
ReorderDiscountProductImages |
discountproduct.proto | 9 | مرتبسازی |
GetActiveMessages |
public_messages.proto | 16 | پیامهای فعال |
GetAllCategories |
category.proto | 4 | همه دستهبندیها |
GetCustomerProducts |
products.proto | 29 | محصولات مشتری |
GetCustomerProductsByFilter |
products.proto | 16 | فیلتر محصولات |
GetProductTag |
producttag.proto | 19 | تگ محصول |
GetProductsByTag |
tag.proto | 16 | محصولات بر اساس تگ |
UpdateProductTag |
producttag.proto | 23 | بروزرسانی تگ |
CreateCity |
City.proto | 3 | ایجاد شهر |
GetCitiesForCustomer |
City.proto | 3 | شهرها برای مشتری |
GetCityByIdForCustomer |
City.proto | 3 | شهر مشتری |
GetCitiesByStateForCustomer |
City.proto | 3 | شهرها بر اساس استان |
GetUserAddress |
useraddress.proto | 19 | آدرس کاربر |
CustomerCancelOrder |
userorder.proto | 4 | لغو سفارش مشتری |
GetCustomerOrderHistory |
userorder.proto | 13 | تاریخچه سفارشات |
🟢 سرویسهای کاملاً مورد استفاده
فایلهای proto که تمام RPCهایشان استفاده میشود:
| فایل Proto | کل RPC | استفاده FO | استفاده BO |
|---|---|---|---|
| appversion.proto | 3 | ✅ 1 | ✅ 3 |
| blogcategory.proto | 6 | ✅ 2 | ✅ 6 |
| blogpost.proto | 11 | ✅ 5 | ✅ 9 |
| blogpostimage.proto | 4 | ✅ 0 | ✅ 4 |
| discountcategory.proto | 4 | ✅ 1 | ✅ 4 |
| discountorder.proto | 7 | ✅ 3 | ✅ 4 |
| discountshoppingcart.proto | 5 | ✅ 5 | ✅ 0 |
| manualpayment.proto | 5 | ✅ 0 | ✅ 4 |
| public_messages.proto | 8 | ✅ 0 | ✅ 7 |
| role.proto | 5 | ✅ 0 | ✅ 5 |
| sitepage.proto | 10 | ✅ 2 | ✅ 10 |
| sitepagesettings.proto | 5 | ✅ 1 | ✅ 5 |
| tag.proto | 6 | ✅ 0 | ✅ 5 |
| userrole.proto | 5 | ✅ 0 | ✅ 5 |
📋 فایلهای Proto با بیشترین RPC استفادهنشده
| فایل Proto | کل RPC | استفادهنشده از فرانت | وضعیت |
|---|---|---|---|
| factordetails.proto | 5 | 5 (100%) | CRUD داخلی — نیاز به UI ندارد |
| productgalleries.proto | 5 | 5 (100%) | CRUD داخلی — از products.proto استفاده میشود |
| productimages.proto | 5 | 5 (100%) | CRUD داخلی — از products.proto استفاده میشود |
| productcategory.proto | 5 | 5 (100%) | CRUD داخلی — از products.proto استفاده میشود |
| contract.proto | 5 | 5 (100%) | CRUD داخلی — مدیریت قراردادها |
| fms.proto | 2 | 2 (100%) | کد مُرده — هرگز پیادهسازی نشد |
| inventory.proto | 24 | 15 (63%) | بیشتر داخلی (فلو سفارش) |
| transactions.proto | 11 | 9 (82%) | بیشتر داخلی (فلو پرداخت) |
| user.proto | 20 | 9 (45%) | احراز هویت + پروفایل داخلی |
| userorder.proto | 20 | 9 (45%) | مدیریت سفارش داخلی |
🗑️ کاندیدای حذف در آینده
اولویت ۱ — کد مُرده (میتوان بیخطر حذف کرد)
- fms.proto — کامل (2 RPC) — سرویس FMS هرگز ساخته نشد
SubmitOrderForCustomer— stub خالیCreateNewOrderForCustomer— stub خالیCustomerReorderPreviousOrder— فیچر پیادهسازی نشدهCustomerTrackOrder— فیچر پیادهسازی نشدهBulkAdjustStock— 0 رفرنسBulkAddStock— stubBulkUpdateProductStock— stubGetStockValueReport— stubGetInventorySummary— stub
اولویت ۲ — RPCهای تکراری (عملکرد مشابه موجود)
| Dead RPC | جایگزین فعال |
|---|---|
GetCategoryByIdForCustomer |
GetAllCategoriesForCustomer |
GetLowStockProducts |
GetLowStockItems (inventory) |
GetOrdersByDateRange |
GetAllUserOrderByFilter (with date filter) |
GetServiceHealth |
GetSystemHealth |
GetConfigurationByKey |
GetAllConfigurations + filter |
⚠️ نکات مهم
- حذف نکنید! — فقط مستند و آرشیو شدند
- RPCهای دسته B (Internal) حیاتی هستند — بدون آنها سیستم از کار میافتد
- RPCهای
PurchaseGoldenPackageوVerifyGoldenPackagePurchaseاز فرانت فراخوانی نمیشوند ولی فلو خرید بسته فعلی از آنها استفاده میکند - RPCهای
Customer*(مثلCustomerPurchasePackage,CustomerVerifyPackagePurchase) تازه اضافه شدهاند و هنوز از فرانت وصل نشدهاند - قبل از هر حذف، حتماً
grep -rn "RpcName" CMS/src/بزنید تا مطمئن شوید
آخرین بروزرسانی: $(date +%Y-%m-%d)