361 lines
11 KiB
Markdown
361 lines
11 KiB
Markdown
# 📚 BackOffice (Admin Panel) - Complete Documentation
|
|
|
|
> **آخرین بروزرسانی**: January 3, 2026
|
|
> **Build Status**: ✅ SUCCESS (0 Errors)
|
|
> **Framework**: Blazor WebAssembly (.NET 9.0) + MudBlazor UI
|
|
|
|
---
|
|
|
|
## 📊 وضعیت کلی سیستم
|
|
|
|
| Component | Status | Errors |
|
|
|-----------|--------|--------|
|
|
| BackOffice UI | ✅ SUCCESS | 0 |
|
|
| BackOffice.BFF | ✅ SUCCESS | 0 |
|
|
| CMS Microservice | ✅ SUCCESS | 0 |
|
|
|
|
**System Status**: 🟢 **PRODUCTION READY**
|
|
|
|
---
|
|
|
|
## 🗂️ ماژولهای فعال (21 ماژول - 96 صفحه)
|
|
|
|
### آمار صفحات هر ماژول:
|
|
|
|
| ماژول | تعداد صفحات | وضعیت |
|
|
|-------|-------------|--------|
|
|
| DiscountShop | 9 | ✅ |
|
|
| Inventory | 9 | ✅ |
|
|
| AutoComplete | 7 | ✅ |
|
|
| Products | 7 | ✅ |
|
|
| UserOrder | 6 | ✅ |
|
|
| Commission | 6 | ✅ |
|
|
| Club | 5 | ✅ |
|
|
| Network | 4 | ✅ |
|
|
| Payment | 4 | ✅ |
|
|
| PublicMessages | 4 | ✅ |
|
|
| Role | 4 | ✅ |
|
|
| UserRole | 4 | ✅ |
|
|
| SystemManagement | 4 | ✅ |
|
|
| Category | 3 | ✅ |
|
|
| Package | 3 | ✅ |
|
|
| Settings | 3 | ✅ |
|
|
| Tag | 3 | ✅ |
|
|
| UserAddress | 3 | ✅ |
|
|
| Dashboard | 2 | ✅ |
|
|
| Login | 2 | ✅ |
|
|
| User | 2 | ✅ |
|
|
|
|
---
|
|
|
|
## 📦 Proto Projects (24 پروژه)
|
|
|
|
### Core:
|
|
- ✅ `BackOffice.BFF.Common.Protobuf`
|
|
- ✅ `BackOffice.BFF.Health.Protobuf`
|
|
- ✅ `BackOffice.BFF.Configuration.Protobuf`
|
|
|
|
### User Management:
|
|
- ✅ `BackOffice.BFF.User.Protobuf`
|
|
- ✅ `BackOffice.BFF.UserRole.Protobuf`
|
|
- ✅ `BackOffice.BFF.Role.Protobuf`
|
|
- ✅ `BackOffice.BFF.UserAddress.Protobuf`
|
|
- ✅ `BackOffice.BFF.Otp.Protobuf`
|
|
|
|
### Products & Shop:
|
|
- ✅ `BackOffice.BFF.Products.Protobuf`
|
|
- ✅ `BackOffice.BFF.Category.Protobuf`
|
|
- ✅ `BackOffice.BFF.Tag.Protobuf`
|
|
- ✅ `BackOffice.BFF.ProductTag.Protobuf`
|
|
- ✅ `BackOffice.BFF.Package.Protobuf`
|
|
- ✅ `BackOffice.BFF.Inventory.Protobuf`
|
|
|
|
### Discount Shop:
|
|
- ✅ `BackOffice.BFF.DiscountProduct.Protobuf`
|
|
- ✅ `BackOffice.BFF.DiscountCategory.Protobuf`
|
|
- ✅ `BackOffice.BFF.DiscountOrder.Protobuf`
|
|
- ✅ `BackOffice.BFF.DiscountShoppingCart.Protobuf`
|
|
|
|
### Network & Commission:
|
|
- ✅ `BackOffice.BFF.NetworkMembership.Protobuf`
|
|
- ✅ `BackOffice.BFF.ClubMembership.Protobuf`
|
|
- ✅ `BackOffice.BFF.Commission.Protobuf`
|
|
|
|
### Orders & Payments:
|
|
- ✅ `BackOffice.BFF.UserOrder.Protobuf`
|
|
- ✅ `BackOffice.BFF.ManualPayment.Protobuf`
|
|
|
|
### Messaging:
|
|
- ✅ `BackOffice.BFF.PublicMessage.Protobuf`
|
|
|
|
---
|
|
|
|
## 🔧 معماری سیستم
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ BackOffice (Blazor WASM) │
|
|
│ 96 Pages / 21 Modules │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
gRPC-Web + JWT
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ BackOffice.BFF │
|
|
│ CQRS Handlers + Proto Contracts │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
│
|
|
gRPC
|
|
│
|
|
▼
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ CMS Microservice │
|
|
│ Business Logic + PostgreSQL │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 راهنمای Build و Deploy
|
|
|
|
### Local Development:
|
|
|
|
```bash
|
|
cd /home/masoud/Apps/project/FourSat/BackOffice/src
|
|
dotnet build BackOffice.sln
|
|
dotnet run --project BackOffice/BackOffice.csproj
|
|
```
|
|
|
|
### Production با DLL های Proto:
|
|
|
|
```bash
|
|
# 1. Build proto dependencies
|
|
cd /home/masoud/Apps/project/FourSat/BackOffice
|
|
./build-deps.sh
|
|
|
|
# 2. Build & Publish
|
|
cd src
|
|
dotnet publish BackOffice/BackOffice.csproj -c Release -o ./publish
|
|
```
|
|
|
|
### Docker:
|
|
|
|
```bash
|
|
cd /home/masoud/Apps/project/FourSat/BackOffice
|
|
docker build -t backoffice:latest .
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 جزئیات ماژولها
|
|
|
|
### 1. Products Module
|
|
**مسیر**: `Pages/Products/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| ProductsMainPage | `/products` | لیست + فیلتر + صفحهبندی |
|
|
| CreateDialog | - | ایجاد محصول + آپلود تصویر |
|
|
| UpdateDialog | - | ویرایش محصول |
|
|
| GalleryDialog | - | گالری تصاویر محصول |
|
|
| BulkEdit | `/products/bulk-edit` | ویرایش گروهی قیمت/موجودی |
|
|
| ProductCategoriesDragDropPage | `/products/categories` | تخصیص دستهبندی |
|
|
| CategoryProductsDragDropPage | `/category/products` | مدیریت محصولات دسته |
|
|
|
|
**ویژگیها**:
|
|
- ✅ ستون موجودی با رنگبندی هوشمند (🔴🟡🟢)
|
|
- ✅ DragDrop دستهبندی محصولات
|
|
- ✅ آپلود تصویر با پیشنمایش
|
|
- ✅ مدیریت تگهای محصول
|
|
|
|
---
|
|
|
|
### 2. Inventory Module
|
|
**مسیر**: `Pages/Inventory/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| InventoryMainPage | `/inventory` | لیست موجودیها |
|
|
| LowStockPage | `/inventory/low-stock` | هشدار موجودی کم |
|
|
| MovementsPage | `/inventory/movements` | تاریخچه حرکات |
|
|
| WarehousesPage | `/inventory/warehouses` | مدیریت انبارها |
|
|
| AddStockDialog | - | اضافه کردن موجودی |
|
|
| AdjustStockDialog | - | تنظیم موجودی |
|
|
| RecordLossDialog | - | ثبت ضایعات |
|
|
| TransferStockDialog | - | انتقال بین انبار |
|
|
| InventorySettingsDialog | - | تنظیمات انبار |
|
|
|
|
**ویژگیها**:
|
|
- ✅ انواع حرکت موجودی (ورود، خروج، تنظیم، انتقال، ضایعات)
|
|
- ✅ هشدار موجودی کم با threshold قابل تنظیم
|
|
- ✅ پشتیبانی از multi-warehouse
|
|
|
|
---
|
|
|
|
### 3. Discount Shop Module
|
|
**مسیر**: `Pages/DiscountShop/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| DiscountProductsMainPage | `/discount-products` | محصولات تخفیفی |
|
|
| DiscountCategoriesMainPage | `/discount-categories` | دستهبندیها |
|
|
| DiscountOrdersMainPage | `/discount-orders` | سفارشات |
|
|
|
|
**ویژگیها**:
|
|
- ✅ CRUD محصولات تخفیفی
|
|
- ✅ گالری تصاویر
|
|
- ✅ مدیریت دستهبندی سلسلهمراتبی
|
|
- ✅ مشاهده و تغییر وضعیت سفارشات
|
|
|
|
---
|
|
|
|
### 4. Commission Module
|
|
**مسیر**: `Pages/Commission/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| Dashboard | `/commission` | داشبورد استخر هفتگی |
|
|
| WeeklyReports | `/commission/reports` | گزارشهای هفتگی |
|
|
| Payouts | `/commission/payouts` | لیست پرداختها |
|
|
| Withdrawals | `/commission/withdrawals` | لیست برداشتها |
|
|
| UserBalances | `/network/balances` | بالانس کاربران |
|
|
|
|
**ویژگیها**:
|
|
- ✅ نمایش استخر هفتگی با جزئیات
|
|
- ✅ محاسبه ارزش هر بالانس
|
|
- ✅ تاریخچه پرداختها و برداشتها
|
|
|
|
---
|
|
|
|
### 5. Network Module
|
|
**مسیر**: `Pages/Network/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| NetworkMembersList | `/network/members` | لیست اعضای شبکه |
|
|
| NetworkTreeViewer | `/network/tree` | نمای درختی شبکه |
|
|
| NetworkStats | `/network/stats` | آمار شبکه |
|
|
|
|
**ویژگیها**:
|
|
- ✅ نمایش درختی شبکه بازاریابی
|
|
- ✅ جستجو و فیلتر اعضا
|
|
- ✅ آمار و گزارشگیری
|
|
|
|
---
|
|
|
|
### 6. Club Module
|
|
**مسیر**: `Pages/Club/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| ClubMembersList | `/club/members` | لیست اعضای باشگاه |
|
|
| ClubFeatures | `/club/features` | مدیریت ویژگیها |
|
|
| ManualActivation | `/club/activate` | فعالسازی دستی |
|
|
|
|
**ویژگیها**:
|
|
- ✅ مدیریت اعضای باشگاه مشتریان
|
|
- ✅ فعال/غیرفعال کردن ویژگیها برای هر کاربر
|
|
- ✅ فعالسازی دستی با آپلود فیش پرداخت
|
|
|
|
---
|
|
|
|
### 7. User Order Module
|
|
**مسیر**: `Pages/UserOrder/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| UserOrderMainPage | `/orders` | لیست سفارشات |
|
|
| UserOrderDetailsDialog | - | جزئیات سفارش |
|
|
| ChangeOrderStatusDialog | - | تغییر وضعیت |
|
|
| CancelOrderDialog | - | لغو سفارش |
|
|
| ApplyDiscountDialog | - | اعمال تخفیف |
|
|
|
|
**ویژگیها**:
|
|
- ✅ مدیریت کامل سفارشات
|
|
- ✅ نمایش جزئیات با VAT
|
|
- ✅ تغییر وضعیت و لغو سفارش
|
|
|
|
---
|
|
|
|
### 8. System Management Module
|
|
**مسیر**: `Pages/SystemManagement/`
|
|
|
|
| صفحه | Route | توضیحات |
|
|
|------|-------|---------|
|
|
| Configuration | `/system/config` | تنظیمات سیستم |
|
|
| EmailConfig | `/system/email` | پیکربندی ایمیل |
|
|
| SmsConfig | `/system/sms` | پیکربندی SMS |
|
|
| Logs | `/system/logs` | لاگهای سیستم |
|
|
|
|
---
|
|
|
|
## 🔗 دامنهها و آدرسها (محیط Stage)
|
|
|
|
| سرویس | آدرس |
|
|
|-------|------|
|
|
| BackOffice UI | `https://backoffice.se.kbs1.ir` |
|
|
| BackOffice BFF | `https://backoffice-bff.se.kbs1.ir` |
|
|
| FrontOffice UI | `https://frontoffice.se.kbs1.ir` |
|
|
| FrontOffice BFF | `https://frontoffice-bff.se.kbs1.ir` |
|
|
| CMS | `https://cms.se.kbs1.ir` |
|
|
| Git Registry | `git.se.kbs1.ir` |
|
|
|
|
---
|
|
|
|
## 📝 تاریخچه تغییرات اخیر
|
|
|
|
### January 3, 2026
|
|
- ✅ مایگریشن Proto References به DLL-based Approach
|
|
- ✅ تغییر دامنهها از `*.foursat.afrino.co` به `*.se.kbs1.ir`
|
|
- ✅ بروزرسانی Git Remote URLs
|
|
- ✅ ایجاد `build-deps.sh` برای CI/CD
|
|
|
|
### January 1, 2026
|
|
- ✅ فعالسازی ماژول DiscountShop Frontend
|
|
- ✅ فعالسازی ماژول Tag
|
|
- ✅ فعالسازی ماژول PublicMessages
|
|
|
|
### December 20, 2025
|
|
- ✅ رفع مشکل صفحه `/network/balances`
|
|
- ✅ رفع مشکل صفحه `/club/members`
|
|
- ✅ تکمیل Mapster Mappings
|
|
|
|
---
|
|
|
|
## 🛠️ Troubleshooting
|
|
|
|
### Build Errors
|
|
|
|
**مشکل**: Missing Proto DLLs
|
|
```bash
|
|
# راهحل: Rebuild proto dependencies
|
|
cd BackOffice
|
|
rm -rf libs/
|
|
./build-deps.sh
|
|
```
|
|
|
|
**مشکل**: Package Version Conflict
|
|
```bash
|
|
# بررسی ورژنها
|
|
# Google.Protobuf: 3.28.3
|
|
# Grpc.Core.Api: 2.71.0
|
|
```
|
|
|
|
### Runtime Errors
|
|
|
|
**مشکل**: gRPC Connection Failed
|
|
```
|
|
# بررسی آدرس BFF در appsettings.json
|
|
"GwUrl": "https://backoffice-bff.se.kbs1.ir"
|
|
```
|
|
|
|
---
|
|
|
|
## 📚 مستندات مرتبط
|
|
|
|
- [Proto Packaging Guide](./02-PROTO-GUIDE.md)
|
|
- [Data Migration Guide](./03-DATA-MIGRATION.md)
|
|
- [CMS Documentation](./04-CMS.md)
|
|
- [Deployment Guide](./05-DEPLOYMENT.md)
|