update
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
# FrontOffice.BFF
|
||||
|
||||
## Overview
|
||||
FrontOffice.BFF (Backend-For-Frontend) is a gRPC-based API gateway that serves the FrontOffice web application. It communicates with the CMS microservice via gRPC and exposes APIs to the frontend.
|
||||
|
||||
## Architecture
|
||||
```
|
||||
Frontend (FrontOffice) → FrontOffice.BFF → CMS Microservice
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
```
|
||||
FrontOffice.BFF/
|
||||
├── src/
|
||||
│ ├── FrontOffice.BFF.Application/ # CQRS handlers, DTOs, interfaces
|
||||
│ ├── FrontOffice.BFF.Domain/ # Domain entities
|
||||
│ ├── FrontOffice.BFF.Infrastructure/ # gRPC clients, DI config
|
||||
│ ├── FrontOffice.BFF.WebApi/ # gRPC services, mappings
|
||||
│ └── Protobufs/ # Proto definitions for frontend
|
||||
│ ├── FrontOffice.BFF.Category.Protobuf/
|
||||
│ ├── FrontOffice.BFF.DiscountShop.Protobuf/ # NEW
|
||||
│ ├── FrontOffice.BFF.Package.Protobuf/
|
||||
│ ├── FrontOffice.BFF.Products.Protobuf/
|
||||
│ ├── FrontOffice.BFF.ShopingCart.Protobuf/
|
||||
│ ├── FrontOffice.BFF.Transaction.Protobuf/
|
||||
│ ├── FrontOffice.BFF.User.Protobuf/
|
||||
│ ├── FrontOffice.BFF.UserAddress.Protobuf/
|
||||
│ ├── FrontOffice.BFF.UserOrder.Protobuf/
|
||||
│ └── FrontOffice.BFF.UserWallet.Protobuf/
|
||||
```
|
||||
|
||||
## Feature Modules
|
||||
|
||||
### DiscountShopCQ (New - Jan 2025)
|
||||
فروشگاه تخفیفی برای اعضای باشگاه مشتریان
|
||||
|
||||
**Queries:**
|
||||
- `GetDiscountProducts` - لیست محصولات تخفیفی
|
||||
- `GetDiscountCategories` - دستهبندیهای فروشگاه
|
||||
- `GetMyDiscountCart` - سبد خرید تخفیفی کاربر
|
||||
- `GetMyDiscountOrders` - سفارشات تخفیفی کاربر
|
||||
|
||||
**Commands:**
|
||||
- `AddToDiscountCart` - افزودن به سبد خرید
|
||||
- `RemoveFromDiscountCart` - حذف از سبد خرید
|
||||
- `PlaceDiscountOrder` - ثبت سفارش
|
||||
|
||||
### CommissionCQ
|
||||
سیستم کمیسیون شبکهای
|
||||
|
||||
**Queries:**
|
||||
- `GetMyCommissionPayouts` - لیست پرداختهای کمیسیون
|
||||
- `GetMyWeeklyBalances` - بالانسهای هفتگی
|
||||
|
||||
### NetworkMembershipCQ
|
||||
عضویت شبکهای و درخت باینری
|
||||
|
||||
**Queries:**
|
||||
- `GetMyNetworkPosition` - موقعیت کاربر در شبکه
|
||||
- `GetMyNetworkStatistics` - آمار شبکه
|
||||
- `GetMyNetworkTree` - درخت شبکه
|
||||
- `GetSubordinateTree` - درخت زیرمجموعه (NEW - ۲۸ آذر)
|
||||
|
||||
### ClubMembershipCQ
|
||||
عضویت باشگاه مشتریان
|
||||
|
||||
**Queries:**
|
||||
- `GetMyClubMembership` - وضعیت عضویت
|
||||
|
||||
**Commands:**
|
||||
- `ActivateMyClubMembership` - فعالسازی عضویت
|
||||
|
||||
### UserWalletCQ
|
||||
کیف پول کاربر
|
||||
|
||||
**Queries:**
|
||||
- `GetUserWallet` - موجودی کیف پول
|
||||
- `GetAllUserWalletChangeLog` - تاریخچه تراکنشها
|
||||
|
||||
**Commands:**
|
||||
- `WithdrawBalance` - درخواست برداشت
|
||||
- `TransferUserWalletBallance` - انتقال موجودی (TODO: needs CMS proto)
|
||||
- `DeleteUser` - حذف کاربر
|
||||
|
||||
## gRPC Clients (CMS Connection)
|
||||
Defined in `IApplicationContractContext.cs`:
|
||||
|
||||
- `ProductContract` - محصولات
|
||||
- `CategoryContract` - دستهبندیها
|
||||
- `ShopingCartContract` - سبد خرید
|
||||
- `TransactionContract` - تراکنشها
|
||||
- `UserWalletContract` - کیف پول
|
||||
- `UserContract` - کاربران
|
||||
- `UserOrderContract` - سفارشات
|
||||
- `NetworkMembershipContract` - عضویت شبکه
|
||||
- `CommissionContract` - کمیسیون
|
||||
- `ClubMembershipContract` - باشگاه مشتریان
|
||||
- `DiscountProductContract` - محصولات تخفیفی (NEW)
|
||||
- `DiscountCategoryContract` - دستهبندی تخفیفی (NEW)
|
||||
- `DiscountShoppingCartContract` - سبد خرید تخفیفی (NEW)
|
||||
- `DiscountOrderContract` - سفارش تخفیفی (NEW)
|
||||
|
||||
## Build & Run
|
||||
```bash
|
||||
cd FrontOffice.BFF/src
|
||||
dotnet build
|
||||
dotnet run --project FrontOffice.BFF.WebApi
|
||||
```
|
||||
|
||||
## Last Updated
|
||||
- **28 آذر ۱۴۰۴**: Added `GetSubordinateTree` handler for viewing subordinate network trees
|
||||
- **January 2025**: Added DiscountShop integration (4 gRPC clients, 7 handlers, Proto service)
|
||||
Reference in New Issue
Block a user