From 13dd0f552ff988b4350f1168f558876e911e2cdd Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 24 Feb 2026 22:53:36 +0330 Subject: [PATCH] refactor: archive 12 dead gRPC RPCs with [ARCHIVED] markers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Archived RPCs (code preserved, marked obsolete): - fms.proto: excluded from csproj (CreateNewFileInfo, DeleteFileInfo) - UserOrderService: GetOrdersByDateRange, CreateNewOrderForCustomer, SubmitOrderForCustomer - ConfigurationService: DeactivateConfiguration, GetConfigurationHistory - CityService: UpdateCity, DeleteCity - HealthService: GetServiceHealth - CategoryService: GetCategoryByIdForCustomer - inventory.proto: BulkAdjustStock (no implementation existed) All archived RPCs wrapped in #region [ARCHIVED] with [Obsolete] attributes. No code deleted — archive only. Build passes with 0 errors. --- .../CMSMicroservice.Protobuf.csproj | 4 ++-- .../Services/CategoryService.cs | 4 ++++ src/CMSMicroservice.WebApi/Services/CityService.cs | 4 ++++ .../Services/ConfigurationService.cs | 8 ++++++-- src/CMSMicroservice.WebApi/Services/HealthService.cs | 5 ++++- .../Services/UserOrderService.cs | 11 +++++++++-- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj b/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj index c07bc07..fd03f97 100644 --- a/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj +++ b/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj @@ -64,8 +64,8 @@ - - + + diff --git a/src/CMSMicroservice.WebApi/Services/CategoryService.cs b/src/CMSMicroservice.WebApi/Services/CategoryService.cs index 33d9231..d3b1d1d 100644 --- a/src/CMSMicroservice.WebApi/Services/CategoryService.cs +++ b/src/CMSMicroservice.WebApi/Services/CategoryService.cs @@ -98,8 +98,11 @@ public class CategoryService : CategoryContract.CategoryContractBase return response; } + #region [ARCHIVED] GetCategoryByIdForCustomer — تکراری: GetCategory (admin) + GetAllCategoriesForCustomer کافی است + [Obsolete("ARCHIVED: Use GetCategory or GetAllCategoriesForCustomer instead")] public override async Task GetCategoryByIdForCustomer(GetCategoryByIdForCustomerRequest request, ServerCallContext context) { + // [ARCHIVED] duplicate — GetCategory + GetAllCategoriesForCustomer cover this var query = new GetCategoryQuery { Id = request.Id }; var result = await _sender.Send(query, context.CancellationToken); @@ -118,4 +121,5 @@ public class CategoryService : CategoryContract.CategoryContractBase } }; } + #endregion } diff --git a/src/CMSMicroservice.WebApi/Services/CityService.cs b/src/CMSMicroservice.WebApi/Services/CityService.cs index 4156424..8649fe8 100644 --- a/src/CMSMicroservice.WebApi/Services/CityService.cs +++ b/src/CMSMicroservice.WebApi/Services/CityService.cs @@ -177,6 +177,8 @@ public class CityService : CityContract.CityContractBase }; } + #region [ARCHIVED] UpdateCity & DeleteCity — شهرها seed data هستند، ویرایش/حذف دستی باعث خرابی آدرس‌ها می‌شود + [Obsolete("ARCHIVED: Cities are seed data — manual edit/delete breaks user addresses")] public override async Task UpdateCity( UpdateCityRequest request, ServerCallContext context) { @@ -195,6 +197,7 @@ public class CityService : CityContract.CityContractBase return new Empty(); } + [Obsolete("ARCHIVED: Cities are seed data — manual delete breaks user addresses")] public override async Task DeleteCity( DeleteCityRequest request, ServerCallContext context) { @@ -206,6 +209,7 @@ public class CityService : CityContract.CityContractBase await _context.SaveChangesAsync(context.CancellationToken); return new Empty(); } + #endregion #endregion } diff --git a/src/CMSMicroservice.WebApi/Services/ConfigurationService.cs b/src/CMSMicroservice.WebApi/Services/ConfigurationService.cs index 8a096aa..b2e4c7f 100644 --- a/src/CMSMicroservice.WebApi/Services/ConfigurationService.cs +++ b/src/CMSMicroservice.WebApi/Services/ConfigurationService.cs @@ -154,18 +154,22 @@ public class ConfigurationService : ConfigurationContract.ConfigurationContractB throw new RpcException(new Status(StatusCode.FailedPrecondition, "تنظیمات سیستم فقط خواندنی هستند. تغییر از طریق کد انجام می‌شود")); } + #region [ARCHIVED] DeactivateConfiguration & GetConfigurationHistory — SystemConstants ثابت هستند، این RPCها بی‌معنی [RequiresPermission(PermissionNames.SettingsManageConfiguration)] + [Obsolete("ARCHIVED: SystemConstants are read-only — deactivation is meaningless")] public override Task DeactivateConfiguration(DeactivateConfigurationRequest request, ServerCallContext context) { - _logger.LogWarning("DeactivateConfiguration called but SystemConstants are read-only. Key: {Key}", request.Key); + _logger.LogWarning("[ARCHIVED] DeactivateConfiguration called but SystemConstants are read-only. Key: {Key}", request.Key); throw new RpcException(new Status(StatusCode.FailedPrecondition, "تنظیمات سیستم فقط خواندنی هستند. غیرفعال‌سازی از طریق کد انجام می‌شود")); } + [Obsolete("ARCHIVED: SystemConstants have no history — always returns empty")] public override Task GetConfigurationHistory(GetConfigurationHistoryRequest request, ServerCallContext context) { - // چون constant هستند، تاریخچه‌ای وجود نداره + // [ARCHIVED] چون constant هستند، تاریخچه‌ای وجود نداره return Task.FromResult(new GetConfigurationHistoryResponse()); } + #endregion #region Private Helpers diff --git a/src/CMSMicroservice.WebApi/Services/HealthService.cs b/src/CMSMicroservice.WebApi/Services/HealthService.cs index 4f7f3e5..4b896c6 100644 --- a/src/CMSMicroservice.WebApi/Services/HealthService.cs +++ b/src/CMSMicroservice.WebApi/Services/HealthService.cs @@ -25,9 +25,11 @@ public class HealthService : HealthContract.HealthContractBase return result.Adapt(); } + #region [ARCHIVED] GetServiceHealth — تکراری: GetSystemHealth کل سیستم را برمی‌گرداند، فیلتر client-side کافی است + [Obsolete("ARCHIVED: Use GetSystemHealth + client-side filter by service name")] public override async Task GetServiceHealth(GetServiceHealthRequest request, ServerCallContext context) { - // For now, just return system health filtered by service name + // [ARCHIVED] duplicate — GetSystemHealth returns all, client can filter var systemHealthQuery = new GetSystemHealthQuery(); var systemHealth = await _mediator.Send(systemHealthQuery, context.CancellationToken); @@ -45,4 +47,5 @@ public class HealthService : HealthContract.HealthContractBase CheckedAt = Google.Protobuf.WellKnownTypes.Timestamp.FromDateTime(DateTime.UtcNow) }; } + #endregion } \ No newline at end of file diff --git a/src/CMSMicroservice.WebApi/Services/UserOrderService.cs b/src/CMSMicroservice.WebApi/Services/UserOrderService.cs index 0dfd15d..e8c9e53 100644 --- a/src/CMSMicroservice.WebApi/Services/UserOrderService.cs +++ b/src/CMSMicroservice.WebApi/Services/UserOrderService.cs @@ -497,7 +497,9 @@ public class UserOrderService : UserOrderContract.UserOrderContractBase }; } + #region [ARCHIVED] GetOrdersByDateRange — تکراری: GetAllUserOrderByFilter همین قابلیت + فیلترهای بیشتر دارد [RequiresPermission(PermissionNames.ReportsView)] + [Obsolete("ARCHIVED: Use GetAllUserOrderByFilter instead — has date range + more filters")] public override async Task GetOrdersByDateRange(GetOrdersByDateRangeRequest request, ServerCallContext context) { var pageNumber = request.PageNumber > 0 ? request.PageNumber : 1; @@ -551,6 +553,7 @@ public class UserOrderService : UserOrderContract.UserOrderContractBase Orders = { orders } }; } + #endregion [RequiresPermission(PermissionNames.OrdersUpdate)] public override async Task ApplyDiscountToOrder(ApplyDiscountToOrderRequest request, ServerCallContext context) @@ -624,17 +627,21 @@ public class UserOrderService : UserOrderContract.UserOrderContractBase // ============= Customer-specific Methods ============= + #region [ARCHIVED] CreateNewOrderForCustomer & SubmitOrderForCustomer — Stub خالی: مسیر سفارش مشتری از SubmitShopBuyOrder می‌گذرد + [Obsolete("ARCHIVED: Empty stub — customer order flow uses SubmitShopBuyOrder")] public override async Task CreateNewOrderForCustomer(CreateNewUserOrderRequest request, ServerCallContext context) { - // For now, return empty response - will be implemented properly later + // [ARCHIVED] Empty stub — مسیر سفارش مشتری از SubmitShopBuyOrder می‌گذرد return new CreateNewUserOrderResponse(); } + [Obsolete("ARCHIVED: Empty stub — customer order flow uses SubmitShopBuyOrder")] public override async Task SubmitOrderForCustomer(SubmitShopBuyOrderRequest request, ServerCallContext context) { - // For now, return empty response - will be implemented properly later + // [ARCHIVED] Empty stub — مسیر سفارش مشتری از SubmitShopBuyOrder می‌گذرد return new SubmitShopBuyOrderResponse(); } + #endregion public override async Task GetCustomerOrders(GetAllUserOrderByFilterRequest request, ServerCallContext context) {