73e1971cc3
- Added DiscountProductImage entity and related configurations for product image gallery. - Created commands and queries for managing product images. - Developed GetAllDiscountOrders API for admin order management with various filters. - Implemented VAT calculation service and integrated it into order processing. - Created Sales Reports API with support for daily, weekly, and monthly reports. - Completed gRPC services for BackOffice.BFF to expose new APIs. - Updated Proto files and project references accordingly.
7.9 KiB
7.9 KiB
📦 CHANGELOG - سیستم انبارداری Phase 2
تاریخ: ۱۲ دی ۱۴۰۴ (1 January 2026)
نوع: Feature Implementation
وضعیت: ✅ Build Successful
🎯 خلاصه
پیادهسازی کامل Phase 2 سیستم انبارداری شامل:
- Repository Pattern برای سه Entity اصلی
- CQRS Commands و Queries کامل
- Handlers برای تمام عملیات
- DI Configuration
✅ تغییرات انجام شده
1. Repository Interfaces (Application Layer)
| فایل | توضیح |
|---|---|
IInventoryItemRepository.cs |
اینترفیس repository برای مدیریت موجودی |
IStockMovementRepository.cs |
اینترفیس repository برای حرکات انبار |
IWarehouseRepository.cs |
اینترفیس repository برای انبارها |
متدهای کلیدی IInventoryItemRepository:
GetByIdAsync,GetByProductIdAsync,GetByDiscountProductIdAsyncGetLowStockItemsAsync,GetOutOfStockItemsAsyncUpdateQuantityAsync,ReserveQuantityAsync,ReleaseReservedQuantityAsyncBulkUpdateQuantityAsync,BulkReserveQuantityAsync
2. Repository Implementations (Infrastructure Layer)
| فایل | توضیح |
|---|---|
InventoryItemRepository.cs |
پیادهسازی کامل با EF Core |
StockMovementRepository.cs |
پیادهسازی با analytics queries |
WarehouseRepository.cs |
پیادهسازی با statistics |
ویژگیهای خاص:
- استفاده از
BaseAuditableEntity.Created(نه CreatedAt) - پشتیبانی از
ProductType.RegularProductوProductType.DiscountProduct - متدهای bulk operation برای عملکرد بهتر
3. CQRS Commands
InventoryItem Commands (8 عدد):
✅ CreateInventoryItemCommand
✅ UpdateInventoryItemCommand
✅ UpdateInventoryQuantityCommand
✅ ReserveInventoryCommand
✅ ReleaseReservedInventoryCommand
✅ ReduceInventoryCommand
✅ IncreaseInventoryCommand
✅ DeleteInventoryItemCommand
StockMovement Commands (3 عدد):
✅ CreateStockMovementCommand
✅ BulkCreateStockMovementCommand
✅ DeleteStockMovementCommand
Warehouse Commands (6 عدد):
✅ CreateWarehouseCommand
✅ UpdateWarehouseCommand
✅ DeleteWarehouseCommand
✅ SetDefaultWarehouseCommand
✅ ActivateWarehouseCommand
✅ BulkCreateWarehousesCommand
4. CQRS Queries
InventoryItem Queries (10 عدد):
✅ GetInventoryItemByIdQuery
✅ GetInventoryItemByProductIdQuery
✅ GetInventoryItemByDiscountProductIdQuery
✅ SearchInventoryItemsQuery
✅ GetInventoryItemsCountQuery
✅ GetLowStockItemsQuery
✅ GetOutOfStockItemsQuery
✅ CheckInventoryAvailabilityQuery
✅ GetAvailableQuantityQuery
✅ GetWarehouseInventoryItemsQuery
StockMovement Queries (12 عدد):
✅ GetStockMovementByIdQuery
✅ GetInventoryItemMovementHistoryQuery
✅ GetStockMovementsByOrderQuery
✅ GetStockMovementsByDiscountOrderQuery
✅ GetStockMovementsByReferenceQuery
✅ GetStockMovementsByTypeQuery
✅ GetRecentStockMovementsQuery
✅ SearchStockMovementsQuery
✅ GetStockMovementsCountQuery
✅ GetMovementSummaryQuery
✅ GetDailyMovementVolumeQuery
✅ GetTopMovingProductsQuery
Warehouse Queries (10 عدد):
✅ GetWarehouseByIdQuery
✅ GetWarehouseByCodeQuery
✅ GetDefaultWarehouseQuery
✅ GetActiveWarehousesQuery
✅ GetAllWarehousesQuery
✅ SearchWarehousesQuery
✅ GetWarehousesCountQuery
✅ WarehouseExistsQuery
✅ WarehouseExistsByCodeQuery
✅ GetWarehouseStatisticsQuery
5. Handlers
| فایل | Handlers |
|---|---|
InventoryItemCommandHandlers.cs |
8 handler برای commands |
InventoryItemQueryHandlers.cs |
10 handler برای queries |
StockMovementCommandHandlers.cs |
3 handler برای commands |
StockMovementQueryHandlers.cs |
12 handler برای queries |
WarehouseCommandHandlers.cs |
6 handler برای commands |
WarehouseQueryHandlers.cs |
10 handler برای queries |
6. DI Configuration
فایل DependencyInjection.cs آپدیت شد:
// Inventory Repositories
services.AddScoped<IInventoryItemRepository, InventoryItemRepository>();
services.AddScoped<IStockMovementRepository, StockMovementRepository>();
services.AddScoped<IWarehouseRepository, WarehouseRepository>();
🐛 باگهای رفع شده
| مشکل | راهحل |
|---|---|
ProductType.Normal not found |
تغییر به ProductType.RegularProduct |
ProductType.Discount not found |
تغییر به ProductType.DiscountProduct |
.CreatedAt not found |
تغییر به .Created (BaseAuditableEntity) |
Namespace Persistence.Context |
تغییر به Persistence |
| Interface mismatch errors | بازنویسی کامل repositories |
📊 آمار نهایی
| متریک | مقدار |
|---|---|
| Total Commands | 17 |
| Total Queries | 32 |
| Total Handlers | 49 |
| Repository Interfaces | 3 |
| Repository Implementations | 3 |
| Build Errors | 0 ✅ |
| Build Warnings | 466 |
⏳ مراحل بعدی (باقیمانده از Plan)
Phase 3: Business Services (اولویت بالا)
IInventoryServiceinterfaceInventoryServiceimplementationInitializeInventoryAsync- ایجاد موجودی برای محصول جدیدReserveStockAsync- رزرو برای سفارشReleaseReservationAsync- آزادسازی رزروConfirmSaleAsync- تایید فروشSyncRemainingCountAsync- همگامسازی با Product.RemainingCount
Phase 4: Integration
- یکپارچهسازی با
CreateProductCommandHandler - یکپارچهسازی با
PlaceOrderCommandHandler - یکپارچهسازی با
CompletePaymentHandler
Phase 5: Data Migration
- Migration script برای Products موجود
- Migration script برای DiscountProducts موجود
Phase 6: Proto/gRPC
inventory.proto- gRPC Service
Phase 7: Tests
- Unit tests
- Integration tests
📁 ساختار فایلها
CMSMicroservice.Application/
├── Common/
│ └── Interfaces/
│ ├── IInventoryItemRepository.cs ✅
│ ├── IStockMovementRepository.cs ✅
│ └── IWarehouseRepository.cs ✅
└── Features/
├── InventoryItems/
│ ├── Commands/
│ │ └── InventoryItemCommands.cs ✅
│ ├── Handlers/
│ │ ├── InventoryItemCommandHandlers.cs ✅
│ │ └── InventoryItemQueryHandlers.cs ✅
│ └── Queries/
│ └── InventoryItemQueries.cs ✅
├── StockMovements/
│ ├── Commands/
│ │ └── StockMovementCommands.cs ✅
│ ├── Handlers/
│ │ ├── StockMovementCommandHandlers.cs ✅
│ │ └── StockMovementQueryHandlers.cs ✅
│ └── Queries/
│ └── StockMovementQueries.cs ✅
└── Warehouses/
├── Commands/
│ └── WarehouseCommands.cs ✅
├── Handlers/
│ ├── WarehouseCommandHandlers.cs ✅
│ └── WarehouseQueryHandlers.cs ✅
└── Queries/
└── WarehouseQueries.cs ✅
CMSMicroservice.Infrastructure/
├── DependencyInjection.cs ✅ (updated)
└── Persistence/
└── Repositories/
├── InventoryItemRepository.cs ✅
├── StockMovementRepository.cs ✅
└── WarehouseRepository.cs ✅
🔗 مستندات مرتبط
- INVENTORY-SYSTEM-PLAN.md - Plan اصلی
- development-plan.md - پلن توسعه CMS
نویسنده: GitHub Copilot
تاریخ آخرین بروزرسانی: 1 January 2026