docs: consolidate 53 files into 15 structured files in 3 folders

- business/ (5): club-commission, payment, ecommerce, membership, content
- technical/ (5): cms-arch, ui, deployment, migration, api
- overview/ (5): flowcharts, index, changelog, glossary, roadmap
- Removed all old folders: backoffice, cms, deployment, docs, frontoffice, migration, ui-modernization, business (old)
- Updated internal links with relative folder paths
This commit is contained in:
masoodafar-web
2026-02-18 22:29:37 +03:30
parent d7c32dab2a
commit efff5e9cd5
71 changed files with 3632 additions and 32267 deletions
+280
View File
@@ -0,0 +1,280 @@
# 📊 فلوچارت‌ها و دیاگرام‌های کلان
> **دید بالا (Big Picture): فلوی کاربر، مالی و داده**
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
---
## ۱. فلوی کلان کاربر (User Journey)
```
┌─────────────────────────────────────────────────────────────────────────┐
│ FourSat — User Journey │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ [ورود به سایت] │
│ │ │
│ ▼ │
│ ◆ آیا ثبت‌نام کرده؟ ◆──── خیر ───→ [Landing Page] │
│ │ │ │
│ بله [ثبت‌نام] │
│ │ موبایل + OTP │
│ ▼ │ │
│ [Login + JWT] ▼ │
│ │ [پروفایل] │
│ ▼ │ │
│ ◆ عضو باشگاه؟ ◆ ▼ │
│ │ │ ┌───────────────┐ │
│ بله خیر │ Regular Store │ │
│ │ │ │ خرید عادی │ │
│ │ └──────────────→│ IPG پرداخت │ │
│ │ └───────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ Club Member Dashboard │ │
│ ├──────────┬──────────┬──────────┬─────────────┤ │
│ │ فروشگاه │ درخت شبکه │ کمیسیون │ Chatika AI │ │
│ │ تخفیفی │ باینری │ هفتگی │ │ │
│ │ (30%↓) │ │ │ │ │
│ └──────────┴──────────┴──────────┴─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
---
## ۲. فلوی مالی (Financial Flow)
```
┌─────────────────────────────────────────────────────────────────────────┐
│ FourSat — Financial Flow │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ═══════════════════ ورودی پول ═══════════════════ │
│ │
│ [ZarinPal IPG] ──→ ┐ │
│ [Daya Loan] ──→ ├──→ [PYMS Service] ──→ [DB Transaction] │
│ [Manual Pay] ──→ ┘ │ │
│ ▼ │
│ ═══════════ توزیع به ۳ کیف‌پول ═══════════ │
│ │
│ ┌────────────────┐ ┌─────────────────┐ ┌──────────────────┐ │
│ │ 💰 Balance │ │ 🌐 NetworkBal │ │ 🏷️ DiscountBal │ │
│ │ (نقدی) │ │ (شبکه‌ای) │ │ (تخفیفی) │ │
│ │ │ │ │ │ │ │
│ │ • خرید فروشگاه │ │ • محاسبه │ │ • فروشگاه تخفیفی │ │
│ │ • هزینه فعالسازی │ │ کمیسیون │ │ • سهم 30% از │ │
│ │ (25M) │ │ • سقف 300/هفته │ │ قیمت محصول │ │
│ └───────┬────────┘ └────────┬────────┘ └────────┬─────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ═══════════════════ خروجی پول ═══════════════════ │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Weekly Commission Pool │ │
│ │ │ │
│ │ Source: هر فعالسازی → 25.2M واریز │ │
│ │ Calculate: sp_CalculateWeeklyBalances │ │
│ │ Distribute: sp_CalculateWeeklyCommissionPool │ │
│ │ Formula: UserShare = UserBalance / TotalBalance │ │
│ │ Cap: MAX 300 per leg per week │ │
│ │ Carryover: به هفته بعد (max 300, else flush) │ │
│ │ │ │
│ │ ┌─ Member A: Balance=150 → Share=150/600 → 25% ─┐ │ │
│ │ │ Member B: Balance=200 → Share=200/600 → 33% │ │ │
│ │ │ Member C: Balance=250 → Share=250/600 → 42% │ │ │
│ │ └─ Total: 600 ─┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
---
## ۳. فلوی داده (Data Flow)
```
┌─────────────────────────────────────────────────────────────────────────┐
│ FourSat — Data Flow │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ [Browser/Client] │
│ │ │
│ │ HTTPS │
│ ▼ │
│ [nginx / K8s Ingress] │
│ │ │
│ ├──→ / ──────────→ [FrontOffice :5003] (Blazor Server) │
│ │ │ │
│ ├──→ /admin ─────→ [BackOffice :5002] (Blazor WASM) │
│ │ │ │
│ └──→ /hangfire ──→ [CMS :5001] (Dashboard) │
│ │ │
│ ┌─────────────────────────────┘ │
│ │ gRPC (Protobuf v3, HTTP/2) │
│ ▼ │
│ [CMS Microservice :5001] │
│ │ │
│ ├──→ [MediatR] ──→ Commands/Queries ──→ Handlers │
│ │ │ │
│ ├──→ [Hangfire] ──→ Background Jobs │ │
│ │ • DayaLoan (15min) │ │
│ │ • Commission (weekly) │ │
│ │ • Chatika (5min) │ │
│ │ • InventorySync (hourly) │ │
│ │ │ │
│ └──→ [External Services] │ │
│ • ZarinPal API │ │
│ • Kavenegar API ▼ │
│ • DayaLoan API [EF Core 9] │
│ • Chatika API │ │
│ ▼ │
│ [SQL Server 2022] │
│ Schema: [CMS] │
│ ~15 main tables │
│ + 3 Stored Procs │
│ │
└─────────────────────────────────────────────────────────────────────────┘
```
---
## ۴. درخت باینری شبکه (Network Tree)
```
┌─────────┐
│ Root │
│ (Admin) │
└────┬────┘
┌─────────┴─────────┐
┌────▼────┐ ┌────▼────┐
│ User A │ │ User B │
│ L=120 │ │ L=0 │
│ R=80 │ │ R=150 │
└────┬────┘ └────┬────┘
┌───────┴───────┐ ┌──────┴──────┐
┌────▼──┐ ┌────▼──┐ ┌──▼───┐ ┌───▼──┐
│User C │ │User D │ │User E│ │User F│
│Active │ │Active │ │Pend. │ │Active│
└───────┘ └───────┘ └──────┘ └──────┘
Legend:
L = Left leg sales this week
R = Right leg sales this week
Active = فعال (contract signed)
Pend. = در انتظار فعالسازی
Max depth = 15 levels
```
---
## ۵. فلوی خرید — Regular vs Discount Store
```
┌────────────────────────────────┬──────────────────────────────────┐
│ Regular Store │ Discount Store │
├────────────────────────────────┼──────────────────────────────────┤
│ │ │
│ [مشاهده محصولات] │ [مشاهده محصولات] ← فقط باشگاه │
│ │ │ │ │
│ ▼ │ ▼ │
│ [Lazy Load — 12 per page] │ [Lazy Load — 12 per page] │
│ │ │ │ │
│ ▼ │ ▼ │
│ [افزودن به سبد] │ [افزودن به سبد] │
│ │ │ │ │
│ ▼ │ ▼ │
│ [بررسی موجودی] │ [بررسی موجودی] │
│ │ │ [بررسی DiscountBalance] │
│ ▼ │ │ │
│ [Checkout] │ ▼ │
│ │ │ [محاسبه سهم تخفیف (30%)] │
│ ▼ │ [محاسبه سهم نقدی (70%)] │
│ [ZarinPal IPG] │ │ │
│ [100% نقدی] │ ▼ │
│ │ │ [کسر از DiscountBalance] │
│ ▼ │ [ZarinPal IPG برای باقیمانده] │
│ [ثبت سفارش] │ │ │
│ │ │ ▼ │
│ ▼ │ [ثبت سفارش ترکیبی] │
│ [کسر موجودی] │ [کسر موجودی] │
│ │ │ │ │
│ ▼ │ ▼ │
│ [SMS تأیید] │ [SMS تأیید] │
│ │ │
└────────────────────────────────┴──────────────────────────────────┘
```
---
## ۶. معماری Deployment
```
┌──────────────────────────────────────────────────────────────┐
│ Production Server │
│ 45.149.79.127 │
├──────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌────────────────────────────────────┐ │
│ │ nginx │────→│ Kubernetes Cluster │ │
│ │ :80/:443│ │ │ │
│ └─────────┘ │ ┌───────────┐ ┌───────────────┐ │ │
│ │ │CMS ×2 │ │FrontOffice ×2 │ │ │
│ │ │:5001 gRPC │ │:5003 Blazor │ │ │
│ │ └─────┬─────┘ └───────────────┘ │ │
│ │ │ │ │
│ │ ┌─────▼─────┐ ┌───────────────┐ │ │
│ │ │SQL Server │ │BackOffice ×1 │ │ │
│ │ │:1433 │ │:5002 Static │ │ │
│ │ └───────────┘ └───────────────┘ │ │
│ │ │ │
│ │ ┌───────────┐ ┌───────────────┐ │ │
│ │ │Nexus │ │Hangfire │ │ │
│ │ │:8081 │ │(inside CMS) │ │ │
│ │ └───────────┘ └───────────────┘ │ │
│ └────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────┘
```
---
## ۷. Entity Relationship (ساده‌شده)
```
┌──────────┐ ┌──────────────┐ ┌──────────────┐
│ User │────→│ ClubMembership│────→│ NetworkNode │
│ │ │ │ │ (BinaryTree)│
└────┬─────┘ └──────────────┘ └──────────────┘
├────→ ┌──────────┐ ┌──────────┐
│ │ Order │────→│ OrderItem│────→ [Product]
│ └──────────┘ └──────────┘
├────→ ┌──────────────┐
│ │ Transaction │────→ [Wallet (×3)]
│ └──────────────┘
├────→ ┌──────────────┐
│ │ UserContract │
│ └──────────────┘
└────→ ┌──────────────┐
│ ChatMessage │
└──────────────┘
┌──────────┐ ┌───────────┐
│ Product │────→│ Inventory │
│ │────→│ Category │
│ │────→│ Images │
└──────────┘
┌──────────┐ ┌──────────────────────┐
│ SitePage │ │ SystemConfiguration │
│ (typed) │ │ (key-value) │
└──────────┘ └──────────────────────┘
┌──────────┐
│ BlogPost │────→ [Tags, Category, Author]
└──────────┘
```
+167
View File
@@ -0,0 +1,167 @@
# 📋 شاخص اصلی مستندات (Master Index)
> **فهرست کامل ۱۵ فایل مستند پروژه FourSat (کارا بازار سلامت)**
> **تاریخ تجمیع:** اسفند ۱۴۰۴
> **تعداد فایل‌های مبدأ:** ۵۳ فایل (~۳۲,۰۰۰ خط)
> **تعداد فایل‌های نهایی:** ۱۵ فایل
---
## ساختار مستندات
```
totalDoc/
├── 📁 business/ (سطح بیزینسی — ۵ فایل)
│ ├── BUSINESS-01-CLUB-COMMISSION.md سیستم باشگاه و کمیسیون
│ ├── BUSINESS-02-PAYMENT-FINANCE.md مالی و درگاه‌ها
│ ├── BUSINESS-03-ECOMMERCE-STORES.md فروشگاه و موجودی
│ ├── BUSINESS-04-USER-MEMBERSHIP.md چرخه کاربر و عضویت
│ └── BUSINESS-05-CONTENT-MANAGEMENT.md محتوا و صفحات
├── 📁 technical/ (سطح فنی — ۵ فایل)
│ ├── TECH-01-CMS-ARCHITECTURE.md معماری CMS
│ ├── TECH-02-BACKOFFICE-FRONTOFFICE.md معماری UI
│ ├── TECH-03-DEPLOYMENT-INFRA.md استقرار و زیرساخت
│ ├── TECH-04-MIGRATION.md مهاجرت داده
│ └── TECH-05-API-INTEGRATION.md API و یکپارچه‌سازی
└── 📁 overview/ (نمای کلان — ۵ فایل)
├── OVERVIEW-01-FLOWCHARTS.md فلوچارت‌ها و دیاگرام‌ها
├── OVERVIEW-02-INDEX.md ← همین فایل
├── OVERVIEW-03-CHANGELOG.md تاریخچه و درصد تکمیل
├── OVERVIEW-04-GLOSSARY.md واژه‌نامه و استانداردها
└── OVERVIEW-05-ROADMAP.md نقشه راه و ریسک‌ها
```
---
## خلاصه هر فایل
### 🏆 Business Level
| # | فایل | موضوع | خلاصه |
|---|------|--------|--------|
| B1 | [BUSINESS-01-CLUB-COMMISSION](../business/BUSINESS-01-CLUB-COMMISSION.md) | باشگاه و کمیسیون | درخت باینری، فرمول ۴مرحله‌ای، Pool هفتگی، وام دایا، Chatika |
| B2 | [BUSINESS-02-PAYMENT-FINANCE](../business/BUSINESS-02-PAYMENT-FINANCE.md) | مالی و پرداخت | ZarinPal IPG، ۳ کیف‌پول، PYMS، پرداخت ترکیبی، VAT |
| B3 | [BUSINESS-03-ECOMMERCE-STORES](../business/BUSINESS-03-ECOMMERCE-STORES.md) | فروشگاه | Regular + Discount Store، Lazy Load، موجودی خودکار، باندل |
| B4 | [BUSINESS-04-USER-MEMBERSHIP](../business/BUSINESS-04-USER-MEMBERSHIP.md) | کاربر و عضویت | ثبت‌نام OTP، قرارداد، فیچرهای باشگاه، Auth-Aware، Referral |
| B5 | [BUSINESS-05-CONTENT-MANAGEMENT](../business/BUSINESS-05-CONTENT-MANAGEMENT.md) | محتوا | Site Pages (Shopify)، بلاگ، مدیریت فایل، SMS/Email، Landing |
### ⚙️ Technical Level
| # | فایل | موضوع | خلاصه |
|---|------|--------|--------|
| T1 | [TECH-01-CMS-ARCHITECTURE](../technical/TECH-01-CMS-ARCHITECTURE.md) | معماری CMS | .NET 9، CQRS/MediatR، gRPC، EF Core 9، Hangfire، DB schema |
| T2 | [TECH-02-BACKOFFICE-FRONTOFFICE](../technical/TECH-02-BACKOFFICE-FRONTOFFICE.md) | معماری UI | Blazor WASM/Server، MudBlazor v8، Code-behind، RTL، Theme |
| T3 | [TECH-03-DEPLOYMENT-INFRA](../technical/TECH-03-DEPLOYMENT-INFRA.md) | استقرار | Docker، K8s، CI/CD، Nexus، Offline deployment، Mirrors |
| T4 | [TECH-04-MIGRATION](../technical/TECH-04-MIGRATION.md) | مهاجرت | BFF removal، Gateway removal، Data migration، SQL scripts |
| T5 | [TECH-05-API-INTEGRATION](../technical/TECH-05-API-INTEGRATION.md) | API | Proto definitions، ZarinPal/Kavenegar/Daya/Chatika، Error handling |
### 📊 Overview / Meta
| # | فایل | موضوع | خلاصه |
|---|------|--------|--------|
| O1 | [OVERVIEW-01-FLOWCHARTS](OVERVIEW-01-FLOWCHARTS.md) | دیاگرام‌ها | User Journey، Financial Flow، Data Flow، ER Diagram، Network Tree |
| O2 | [OVERVIEW-02-INDEX](OVERVIEW-02-INDEX.md) | شاخص | همین فایل — فهرست و نقشه ۱۵ فایل |
| O3 | [OVERVIEW-03-CHANGELOG](OVERVIEW-03-CHANGELOG.md) | تاریخچه | همه کارهای انجام‌شده با بولت + درصد تکمیل |
| O4 | [OVERVIEW-04-GLOSSARY](OVERVIEW-04-GLOSSARY.md) | واژه‌نامه | اصطلاحات فارسی/انگلیسی، استانداردهای کد |
| O5 | [OVERVIEW-05-ROADMAP](OVERVIEW-05-ROADMAP.md) | نقشه راه | ریسک‌ها، وابستگی‌ها، کارهای باقیمانده، اولویت‌ها |
---
## نقشه ارتباط فایل‌ها
```
┌──────────────┐
│ O2: INDEX │ ← شما اینجا هستید
└──────┬───────┘
┌─────────────────┼──────────────────┐
│ │ │
┌────▼────┐ ┌────▼─────┐ ┌────▼─────┐
│Business │ │Technical │ │Overview │
│ (B1-B5) │ │ (T1-T5) │ │ (O1-O5) │
└────┬────┘ └────┬─────┘ └────┬─────┘
│ │ │
┌────┴────────────────┴──────────────────┴────┐
│ │
│ B1 ←→ B2 (مالی/باشگاه) │
│ B2 ←→ B3 (پرداخت/فروشگاه) │
│ B3 ←→ B4 (فروشگاه/کاربر) │
│ B4 ←→ B5 (کاربر/محتوا) │
│ B1 ←→ T1 (باشگاه/CMS) │
│ T1 ←→ T2 (CMS/UI) │
│ T1 ←→ T3 (CMS/Deploy) │
│ T3 ←→ T4 (Deploy/Migration) │
│ T1 ←→ T5 (CMS/API) │
│ O1: دیاگرام = بصری B1-B5 + T1-T5 │
│ O3: تاریخچه = changelog B1-B5 + T1-T5 │
│ O5: آینده = roadmap B1-B5 + T1-T5 │
│ │
└──────────────────────────────────────────────┘
```
---
## نقشه ادغام (53 فایل → 15 فایل)
<details>
<summary>کلیک برای مشاهده mapping کامل</summary>
| فایل مبدأ | فایل مقصد |
|-----------|-----------|
| `business/club-commission-system-complete.md` | B1 |
| `business/balance-calculation-rules.md` | B1 |
| `business/club-membership-contract-system.md` | B1, B4 |
| `business/daya-loan-integration.md` | B1, B2 |
| `business/discount-shop-business.md` | B2, B3 |
| `business/DISCOUNT-STORE-STATUS.md` | B3 |
| `business/manual-payment-system.md` | B2 |
| `business/package-purchase-system.md` | B1, B2 |
| `cms/payment-gateway.md` | B2, T5 |
| `cms/payment-architecture-pyms.md` | B2, T1 |
| `cms/SITE-PAGES-SIMPLIFICATION.md` | B5 |
| `cms/system-constants.md` | B5, T1 |
| `cms/email-sms-configuration.md` | B5 |
| `cms/chatika-integration.md` | B1, B5, T5 |
| `cms/club-feature-management-services.md` | B4, T5 |
| `cms/CMS-README.md` | T1 |
| `cms/ICURRENTUSERSERVICE-IMPLEMENTATION.md` | B4, T1 |
| `cms/FILE-MANAGEMENT-ARCHITECTURE.md` | B5, T1 |
| `cms/FRONTOFFICE-CMS-API-COMPATIBILITY.md` | T5 |
| `cms/BFF-REMOVAL-PLAN.md` | T1, T4 |
| `cms/ADMIN-CUSTOMER-SEPARATION-FIX.md` | B4 |
| `cms/REGISTRATION-FLOW-FIXES.md` | B4 |
| `cms/INVENTORY-IMPROVEMENTS.md` | B3 |
| `cms/INVENTORY-REFACTORING-STATUS.md` | B3 |
| `cms/PRODUCT-BUNDLE-FEATURE.md` | B3 |
| `cms/REMAINING-TASKS.md` | O5 |
| `cms/FRONTOFFICE-RELEASE-NOTES-v1.5.0.md` | O3 |
| `deployment/CICD-PIPELINE-GUIDE.md` | T3 |
| `deployment/DEPLOYMENT-README.md` | T3 |
| `deployment/INFRASTRUCTURE-GUIDE.md` | T3 |
| `deployment/INGRESS-NGINX-WARNING.md` | T3 |
| `deployment/OFFLINE-DEPLOYMENT-GUIDE.md` | T3 |
| `deployment/SERVER-MIRRORS-CONFIG.md` | T3 |
| `migration/BACKOFFICE-BFF-MIGRATION.md` | T4 |
| `migration/customer-facing-capabilities-codex.md` | T4 |
| `migration/DATA-TABLE-MAPPINGS.md` | T4 |
| `migration/DATAMIGRATION-README.md` | T4 |
| `migration/FRONTOFFICE-TO-CMS-MIGRATION.md` | T4 |
| `migration/GATEWAY-REMOVAL-MIGRATION-PLAN.md` | T4 |
| `migration/MIGRATION-PROGRESS.md` | T4, O3 |
| `ui-modernization/BACKOFFICE-ARCHITECTURE.md` | T2 |
| `ui-modernization/BACKOFFICE-STORE-UNIFICATION.md` | T2, B3 |
| `ui-modernization/UI-MODERNIZATION-PLAN.md` | T2 |
| `ui-modernization/PHASE-1-COMPLETE.md` | T2, O3 |
| `ui-modernization/PHASE-3-COMPLETE.md` | T2, O3 |
| `ui-modernization/PRODUCT-IMAGES-SQUARE.md` | T2, B3 |
| `backoffice/BACKOFFICE-AUDIT.md` | T2, O3 |
| `backoffice/BACKOFFICE-CHANGELOG.md` | T2, O3 |
| `frontoffice/CHANGELOG.md` | T2, O3 |
| `frontoffice/UI-UNIFICATION-PLAN.md` | T2 |
| `SHOP-UNIFICATION.md` | B3 |
| `INDEX.md` | O2 |
| `docs/MOVED-TO-TOTALDOC.md` | — (deleted) |
</details>
+196
View File
@@ -0,0 +1,196 @@
# 📜 تاریخچه کارهای انجام‌شده
> **همه فعالیت‌های پروژه به صورت بولت با توضیح یک‌خطی و درصد تکمیل**
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
---
## خلاصه کلی
| حوزه | تعداد آیتم | تکمیل‌شده | درصد کل |
|------|-----------|----------|---------|
| **BackOffice** | 58 | 57 | **98%** |
| **FrontOffice** | 35 | 32 | **91%** |
| **CMS Core** | 45 | 42 | **93%** |
| **Deployment** | 20 | 18 | **90%** |
| **Migration** | 15 | 15 | **100%** |
| **مجموع** | **173** | **164** | **95%** |
---
## ۱. BackOffice — فازها (98% کامل)
### Phase 1-3: پایه و ساختار
- ✅ ارتقا به MudBlazor v8 — تغییر تمام کامپوننت‌ها به API جدید
- ✅ پیاده‌سازی MainLayout با Drawer و AppBar — RTL support
- ✅ ایجاد NavMenu با آیکون‌ها و گروه‌بندی — دسته‌بندی منطقی
- ✅ پیاده‌سازی الگوی Code-behind — جدا کردن logic از markup
- ✅ اضافه کردن Theme سفارشی — رنگ‌ها و فونت Vazirmatn
### Phase 4-6: محصولات و فروشگاه
- ✅ صفحه لیست محصولات — MudDataGrid با pagination
- ✅ فرم ایجاد/ویرایش محصول — MudForm با FluentValidation
- ✅ آپلود تصویر محصول — Drag & drop با preview
- ✅ مدیریت دسته‌بندی‌ها — CRUD درختی
- ✅ AppImage کامپوننت — تصاویر مربعی ۱:۱ همه‌جا
### Phase 7-9: سفارشات و مالی
- ✅ لیست سفارشات — فیلتر وضعیت، تاریخ، مبلغ
- ✅ جزئیات سفارش — آیتم‌ها + تراکنش‌ها
- ✅ تغییر وضعیت سفارش — با تأیید دیالوگ
- ✅ گزارش مالی — خلاصه تراکنش‌ها
### Phase 10-12: کاربران و باشگاه
- ✅ لیست کاربران — جستجو + فیلتر نقش
- ✅ مدیریت عضویت باشگاه — فعال/غیرفعال
- ✅ نمای درخت شبکه — نمایش باینری با سطوح
- ✅ مدیریت کمیسیون — مشاهده Pool هفتگی
### Phase 13-15: محتوا و تنظیمات
- ✅ مدیریت بلاگ — CRUD پست‌ها با ادیتور HTML
- ✅ مدیریت صفحات سایت — Shopify-style typed editors
- ✅ HomePageEditor — ویرایش Hero, Featured, Promotion
- ✅ AboutPageEditor — ویرایش متن درباره‌ما
- ✅ ContactPageEditor — اطلاعات تماس
- ✅ LicensesPageEditor — مجوزها
- ✅ ادیتور SystemConstants — تنظیمات key-value
### Phase 16-17: موجودی و نهایی‌سازی
- ✅ صفحه موجودی — با MudAutocomplete برای انتخاب محصول
- ✅ ایجاد خودکار رکورد موجودی — هنگام ساخت محصول
- ✅ Hangfire InventorySync — ایجاد رکوردهای گمشده
- ⬜ Dark Mode — طراحی نشده (Phase آینده)
---
## ۲. FrontOffice — فازها (91% کامل)
### UI Modernization Phase 1-3
- ✅ ارتقا به MudBlazor v8 — همه کامپوننت‌ها
- ✅ MainLayout جدید — Header + Footer + RTL
- ✅ AuthLayout — صفحات Login/Register
- ✅ Landing Page — Hero + Features + Counter + CTA
- ✅ اصلاح انیمیشن Counter — linear interpolation
### فروشگاه (Phase 4-5)
- ✅ Regular Store — لیست محصولات با Lazy Load (12/page)
- ✅ Discount Store — لیست با Lazy Load + hybrid payment
- ✅ ProductCard مشترک — تصویر مربعی + قیمت + دکمه
- ✅ CategoryFilter — فیلتر دسته‌بندی sidebar
- ✅ ProductDetail — جزئیات + تصویر بزرگ + سبد
- ✅ سبد خرید — Regular + Discount جداگانه
- ✅ Checkout — پرداخت ZarinPal + ترکیبی
### باشگاه (Phase 6)
- ✅ داشبورد باشگاه — ۳ کیف‌پول + آمار
- ✅ نمای درخت شبکه — باینری بصری
- ✅ امضای قرارداد — OTP + scroll-to-bottom
- ✅ صفحه Chatika — چت AI
### محتوا و ناوبری
- ✅ بلاگ — لیست + جزئیات + pagination
- ✅ صفحات سایت — About, Contact, FAQ, Terms, Privacy, Licenses
- ✅ ناوبری Auth-Aware — مسیردهی بر اساس نقش
- ✅ Home → Club Dashboard / Store بر اساس وضعیت
- ⬜ Mobile Responsive — Phase 7 (برنامه‌ریزی‌شده)
- ⬜ PWA — نیاز به Service Worker
- ⬜ Bottom Navigation (موبایل) — طراحی نشده
---
## ۳. CMS Core (93% کامل)
### ساختار و معماری
- ✅ CQRS با MediatR — Commands + Queries + Handlers
- ✅ gRPC Services — ۱۱ سرویس اصلی
- ✅ EF Core 9 — Migrations + Seeding
- ✅ Hangfire — ۴ Background Job
- ✅ JWT Authentication — Claims-based
- ✅ ICurrentUserService — جداسازی Admin/Customer
### محصولات و فروشگاه
- ✅ Product CRUD — با auto-inventory
- ✅ Category CRUD — درختی
- ✅ Inventory management — auto-create + sync job
- ✅ GetProductsPaged — با PaginationState
- ✅ File upload/download — streaming gRPC
### مالی و پرداخت
- ✅ ZarinPal Integration — IPG + Verify
- ✅ PYMS Service — سرویس مرکزی پرداخت
- ✅ ۳ Wallet System — Balance, Network, Discount
- ✅ Transaction logging — همه تراکنش‌ها
### باشگاه
- ✅ Binary Tree — SP_GetNetworkTree
- ✅ Weekly Balance Calculation — sp_CalculateWeeklyBalances
- ✅ Commission Pool — sp_CalculateWeeklyCommissionPool
- ✅ Contract System — OTP + acceptance
- ✅ Club Features — activate/deactivate
- ✅ DayaLoan Integration — Hangfire + Polly
### محتوا
- ✅ Blog CRUD — با pagination
- ✅ SitePage Settings — JSON typed
- ✅ SystemConfigurations — key-value
- ⬜ Product Bundle — طراحی‌شده، پیاده‌سازی نشده
- ⬜ Manual Payment — طراحی‌شده، پیاده‌سازی نشده
- ⬜ API Rate Limiting — برنامه‌ریزی‌شده
---
## ۴. Deployment و زیرساخت (90% کامل)
- ✅ Docker Compose — تمام سرویس‌ها
- ✅ Dockerfile (CMS) — multi-stage build
- ✅ K8s Manifests — Deployment + Service + Ingress
- ✅ CI/CD Pipeline — Gitea Actions
- ✅ Nexus Repository — NuGet + Docker proxy
- ✅ Offline Deployment — کامل با اسکریپت‌ها
- ✅ Proto Package — NuGet packaging + distribution
- ✅ Health Check scripts — K8s + service
- ✅ Mirror Configuration — Docker + NuGet
- ✅ Base Image Caching — pull + save + load
- ⬜ Monitoring (Prometheus/Grafana) — برنامه‌ریزی‌شده
- ⬜ Log Aggregation (ELK/Seq) — برنامه‌ریزی‌شده
---
## ۵. Migration (100% کامل)
- ✅ FrontOffice REST → gRPC — همه سرویس‌ها migrate شدند
- ✅ BackOffice REST → gRPC — همه سرویس‌ها migrate شدند
- ✅ BFF حذف — یک لایه کمتر در deployment
- ✅ API Gateway (Ocelot) حذف — K8s Ingress جایگزین
- ✅ Data Migration — Users, Products, Orders, Club
- ✅ Geography Seeder — ۳۱ استان + ۱۲۰۰ شهر
- ✅ SQL Scripts — ۱۴ اسکریپت مهاجرت اجرا شدند
- ✅ Proto Package Unification — یک package مشترک
- ✅ Binary Tree Reconstruction — از سیستم قدیم
---
## ۶. مستندات (100% کامل)
- ✅ ایجاد totalDoc repository — مخزن مرکزی docs
- ✅ جمع‌آوری ۵۳ فایل از ۵ مخزن مختلف
- ✅ تجمیع به ۱۵ فایل ساختارمند — Business + Technical + Overview
- ✅ Index و Cross-reference — نقشه ارتباطات
- ✅ واژه‌نامه و استانداردها
- ✅ نقشه راه آینده
---
## ۷. Timeline (جدول زمانی)
| زمان | رویداد | درصد پروژه |
|------|--------|-----------|
| مهر ۱۴۰۳ | شروع پروژه، معماری CMS | 10% |
| آبان ۱۴۰۳ | CQRS + gRPC + EF Core | 20% |
| آذر ۱۴۰۳ | باشگاه + درخت باینری + کمیسیون | 35% |
| دی ۱۴۰۳ | فروشگاه عادی + پرداخت ZarinPal | 45% |
| بهمن ۱۴۰۳ | فروشگاه تخفیفی + وام دایا | 55% |
| اسفند ۱۴۰۳ (هفته ۱) | UI Modernization Phase 1-3 | 65% |
| اسفند ۱۴۰۳ (هفته ۲) | Site Pages + BackOffice audit | 75% |
| اسفند ۱۴۰۳ (هفته ۳) | Inventory + Lazy Load + Images | 85% |
| اسفند ۱۴۰۳ (هفته ۴) | مستندات + نهایی‌سازی | 95% |
+230
View File
@@ -0,0 +1,230 @@
# 📖 واژه‌نامه، استانداردها و قراردادهای کد
> **اصطلاحات فارسی/انگلیسی، الگوهای نام‌گذاری و استانداردهای حرفه‌ای**
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
---
## ۱. واژه‌نامه اصلی (فارسی ↔ انگلیسی)
### ۱.۱ مفاهیم بیزینسی
| فارسی | انگلیسی | توضیح |
|-------|---------|--------|
| کارا بازار سلامت | FourSat | نام تجاری پلتفرم |
| باشگاه مشتریان | Club Membership | عضویت ویژه با پکیج طلایی |
| پکیج طلایی | Golden Package | بسته ۵۶M تومان برای ورود به باشگاه |
| درخت باینری | Binary Tree | ساختار شبکه‌ای ۲ شاخه‌ای |
| پای چپ / راست | Left Leg / Right Leg | دو شاخه هر نود در درخت |
| کمیسیون هفتگی | Weekly Commission | سهم از Pool بر اساس بالانس |
| بالانس هفتگی | Weekly Balance | MIN(فروش‌چپ, فروش‌راست) |
| سقف هفتگی | Weekly Cap | حداکثر ۳۰۰ واحد هر پا |
| باقیمانده | Carryover | فروش مازاد قابل‌انتقال به هفته بعد |
| Pool هفتگی | Weekly Commission Pool | مخزن کمیسیون قابل‌توزیع |
| هزینه فعالسازی | Activation Fee | ۲۵M تومان از Balance |
| واریز هدیه | Gift Value | ۲۵.۲M واریز به Pool |
| فروشگاه تخفیفی | Discount Store | فروشگاه ۳۰% تخفیف برای اعضا |
| پرداخت ترکیبی | Hybrid Payment | DiscountBalance + IPG |
| وام دایا | Daya Loan | وام آنلاین برای خرید پکیج |
| کد معرف | Referral Code | کد یکتا هر عضو برای دعوت |
| موجودی | Inventory | تعداد محصول در انبار |
### ۱.۲ مفاهیم فنی
| فارسی | انگلیسی | توضیح |
|-------|---------|--------|
| سامانه مدیریت محتوا | CMS Microservice | هسته اصلی backend |
| پنل مدیریت | BackOffice | رابط ادمین (Blazor WASM) |
| سایت کاربران | FrontOffice | رابط مشتری (Blazor Server) |
| درگاه پرداخت | Payment Gateway (IPG) | ZarinPal |
| سرویس پرداخت | PYMS | Payment Management Service |
| کیف‌پول نقدی | Balance Wallet | موجودی قابل‌خرج |
| کیف‌پول شبکه‌ای | Network Balance | برای محاسبه کمیسیون |
| کیف‌پول تخفیفی | Discount Balance | برای فروشگاه تخفیفی |
| بارگذاری تنبل | Lazy Loading | لود محصولات ۱۲تایی |
| صفحات سایت | Site Pages | صفحات قابل‌ویرایش (Shopify-style) |
| ثوابت سیستمی | System Constants | تنظیمات key-value |
| پردازش پس‌زمینه | Background Job | Hangfire recurring/fire-and-forget |
---
## ۲. مخفف‌ها (Abbreviations)
| مخفف | کامل | توضیح |
|------|------|--------|
| **CMS** | Content Management System | مایکروسرویس اصلی |
| **BO** | BackOffice | پنل مدیریت |
| **FO** | FrontOffice | سایت کاربران |
| **BFF** | Backend-for-Frontend | حذف‌شده |
| **CQRS** | Command Query Responsibility Segregation | الگوی معماری |
| **gRPC** | Google Remote Procedure Call | پروتکل ارتباطی |
| **EF** | Entity Framework | ORM |
| **JWT** | JSON Web Token | احراز هویت |
| **IPG** | Internet Payment Gateway | درگاه پرداخت آنلاین |
| **PYMS** | Payment Management Service | سرویس مالی |
| **SP** | Stored Procedure | رویه ذخیره‌شده SQL |
| **OTP** | One-Time Password | رمز یکبار مصرف |
| **K8s** | Kubernetes | ارکستراسیون کانتینر |
| **CI/CD** | Continuous Integration/Deployment | خط لوله خودکار |
| **RTL** | Right-to-Left | راست‌به‌چپ (فارسی) |
| **WASM** | WebAssembly | فرمت اجرایی مرورگر |
| **PWA** | Progressive Web App | وب‌اپ پیشرفته |
---
## ۳. استانداردهای نام‌گذاری
### ۳.۱ C# / .NET
| نوع | الگو | مثال |
|-----|------|------|
| **Class** | PascalCase | `ProductService`, `CreateProductCommand` |
| **Interface** | I + PascalCase | `IProductService`, `ICurrentUserService` |
| **Method** | PascalCase + Async | `GetProductsAsync()`, `CreateOrderAsync()` |
| **Property** | PascalCase | `ProductName`, `IsActive` |
| **Private field** | _camelCase | `_dbContext`, `_logger` |
| **Parameter** | camelCase | `productId`, `userId` |
| **Constant** | PascalCase | `MaxNetworkLevel`, `ActivationFee` |
| **Enum** | PascalCase (singular) | `OrderStatus`, `PaymentType` |
| **Namespace** | Company.Project.Feature | `CMSMicroservice.Features.Products` |
### ۳.۲ Protobuf
| نوع | الگو | مثال |
|-----|------|------|
| **Service** | PascalCase + Service | `ProductService` |
| **Method** | PascalCase | `GetProducts`, `CreateOrder` |
| **Message** | PascalCase + Message/Request/Response | `ProductMessage`, `GetProductsRequest` |
| **Field** | snake_case | `product_name`, `is_active` |
| **Enum** | PascalCase | `ORDER_STATUS_PENDING` |
### ۳.۳ Blazor / UI
| نوع | الگو | مثال |
|-----|------|------|
| **Page** | PascalCase.razor + .razor.cs | `Products.razor`, `Products.razor.cs` |
| **Component** | PascalCase.razor | `AppImage.razor`, `ProductCard.razor` |
| **Parameter** | [Parameter] PascalCase | `[Parameter] public string Title` |
| **CSS class** | kebab-case | `product-card`, `hero-section` |
### ۳.۴ Database
| نوع | الگو | مثال |
|-----|------|------|
| **Table** | PascalCase (plural) | `Products`, `Users`, `Orders` |
| **Column** | PascalCase | `ProductName`, `CreatedAt` |
| **FK** | {Entity}Id | `ProductId`, `UserId` |
| **SP** | SP_ / sp_ + PascalCase | `SP_GetNetworkTree` |
| **Schema** | [CMS] | `[CMS].Products` |
---
## ۴. الگوهای معماری
### ۴.۱ CQRS Pattern
```
Command (نوشتن):
CreateProductCommand → CreateProductCommandHandler → DB Write
Query (خواندن):
GetProductsQuery → GetProductsQueryHandler → DB Read
قوانین:
✅ Command نباید data برگرداند (فقط Id یا void)
✅ Query نباید state تغییر دهد
✅ هر Handler فقط یک مسئولیت
✅ Validation در Validator (FluentValidation)
```
### ۴.۲ gRPC Client Pattern (FrontOffice/BackOffice)
```
Service Layer:
1. Inject GrpcClient via DI
2. Map UI model → Proto Request
3. Call gRPC method
4. Map Proto Response → UI model
5. Handle RpcException → user-friendly message
```
### ۴.۳ Hangfire Job Pattern
```
Recurring Job:
1. Register in Startup: RecurringJob.AddOrUpdate<T>(...)
2. Implement Execute() method
3. Use Polly for retry
4. Log start/end/error
5. Idempotent — safe to re-run
```
---
## ۵. Git Workflow
### ۵.۱ شاخه‌ها
| شاخه | کاربرد | Deploy Target |
|------|--------|--------------|
| `kub-stage` | توسعه فعال | Staging server |
| `production` | محیط نهایی | Production server |
| `main` | مستندات (totalDoc) | — |
### ۵.۲ مخازن
| مخزن | Remote | شاخه اصلی |
|------|--------|-----------|
| CMS | `gitea` → git.se.kbs1.ir | `kub-stage` |
| BackOffice | `kub-stage` → git.se.kbs1.ir | `kub-stage` |
| FrontOffice | `kub-stage` → git.se.kbs1.ir | `kub-stage` |
| Docs (totalDoc) | `foursatDocs` → git.se.kbs1.ir/admin/docs | `main` |
### ۵.۳ Commit Convention
```
feat: add lazy loading for products
fix: correct counter animation on landing
docs: consolidate 53 files into 15
refactor: remove BFF layer
chore: update MudBlazor to v8
```
---
## ۶. ساختار پروژه
```
FourSat/ ← Root workspace
├── CMS/ ← مایکروسرویس اصلی (.NET 9)
│ ├── src/CMSMicroservice/ ← کد اصلی
│ └── Dockerfile
├── BackOffice/ ← پنل مدیریت (Blazor WASM)
│ └── src/BackOffice/
├── FrontOffice/ ← سایت کاربران (Blazor Server)
│ └── src/FrontOffice/
├── DataMigration/ ← ابزار مهاجرت داده
├── deployment/ ← اسکریپت‌های استقرار
│ ├── k8s-manifests/
│ └── docker-compose.yml
├── dbbkup/ ← SQL scripts و backup
├── totalDoc/ ← 📚 مستندات (15 فایل)
│ ├── business/ ← بیزینسی (5 فایل)
│ ├── technical/ ← فنی (5 فایل)
│ └── overview/ ← کلان (5 فایل)
└── nupkg/ ← Proto NuGet packages
```
---
## ۷. Definition of Done (DoD)
هر فیچر قبل از merge باید:
- [ ] کد review شده باشد
- [ ] بیلد موفق باشد (CI green)
- [ ] خطای compile نداشته باشد
- [ ] در Staging تست شده باشد
- [ ] مستندات بروز شده باشد
- [ ] RTL درست کار کند
- [ ] Error handling مناسب داشته باشد
+214
View File
@@ -0,0 +1,214 @@
# 🗺️ نقشه راه، ریسک‌ها و کارهای باقیمانده
> **Roadmap + Risk Register + Dependencies + Priorities**
> **آخرین بروزرسانی:** اسفند ۱۴۰۴
---
## ۱. وضعیت فعلی پروژه
```
██████████████████████████████████████████████████ 95%
Core Platform ████████████████████████████████████████████████ 98%
Club System █████████████████████████████████████████████░░░ 95%
E-Commerce ████████████████████████████████████████████████ 98%
Payment ██████████████████████████████████████░░░░░░░░░ 80%
UI/UX ████████████████████████████████████████░░░░░░░ 85%
Deployment ████████████████████████████████████████████░░░ 90%
Documentation ████████████████████████████████████████████████ 100%
```
---
## ۲. کارهای باقیمانده (Backlog)
### 🔴 اولویت بالا (High Priority)
| # | آیتم | حوزه | پیش‌نیاز | تخمین |
|---|------|------|---------|-------|
| H1 | Product Bundle | Business | Proto + Handler | ۳ روز |
| H2 | Mobile Responsive (Phase 7) | UI/UX | — | ۵ روز |
| H3 | API Rate Limiting | CMS | — | ۲ روز |
| H4 | Error Boundary (Global) | FO/BO | — | ۱ روز |
### 🟡 اولویت متوسط (Medium Priority)
| # | آیتم | حوزه | پیش‌نیاز | تخمین |
|---|------|------|---------|-------|
| M1 | Manual Payment System | Business | تصمیم مدیریت | ۳ روز |
| M2 | SignalR for Chatika | CMS | — | ۲ روز |
| M3 | Dark Mode | UI/UX | — | ۲ روز |
| M4 | SEO Meta Tags | FO | — | ۲ روز |
| M5 | Order Notifications (SMS) | CMS | — | ۱ روز |
| M6 | BackOffice Dashboard Charts | BO | — | ۳ روز |
### 🟢 اولویت پایین (Low Priority)
| # | آیتم | حوزه | پیش‌نیاز | تخمین |
|---|------|------|---------|-------|
| L1 | PWA Support | FO | Mobile first | ۳ روز |
| L2 | API Versioning | CMS | — | ۲ روز |
| L3 | Monitoring (Prometheus) | Infra | — | ۳ روز |
| L4 | Log Aggregation (Seq/ELK) | Infra | — | ۳ روز |
| L5 | Product Compare | FO | — | ۲ روز |
| L6 | Wishlist | FO | — | ۲ روز |
| L7 | Email Templates (HTML) | CMS | — | ۲ روز |
| L8 | Refund System | CMS/PYMS | — | ۵ روز |
### ⛔ بلاک‌شده (Blocked)
| # | آیتم | بلاکر | اقدام لازم |
|---|------|-------|-----------|
| B1 | وام دایا (Production) | API دایا تکمیل نشده | پیگیری تیم دایا |
| B2 | پرداخت دستی | تصمیم‌گیری مدیریت | جلسه با مدیر محصول |
---
## ۳. نقشه راه (Roadmap)
### Q1 1404 (فروردین-خرداد)
```
Sprint 1 (فروردین):
├── H2: Mobile Responsive
├── H1: Product Bundle
└── M4: SEO Meta Tags
Sprint 2 (اردیبهشت):
├── M1: Manual Payment (if approved)
├── M2: SignalR Chatika
└── M6: Dashboard Charts
Sprint 3 (خرداد):
├── M3: Dark Mode
├── H3: Rate Limiting
└── L1: PWA
```
### Q2 1404 (تیر-شهریور)
```
Sprint 4 (تیر):
├── L3: Monitoring
├── L4: Log Aggregation
└── L2: API Versioning
Sprint 5 (مرداد):
├── L5: Product Compare
├── L6: Wishlist
└── L7: Email Templates
Sprint 6 (شهریور):
├── L8: Refund System
├── Performance Optimization
└── Security Audit
```
---
## ۴. ریسک‌ها (Risk Register)
### ۴.۱ ریسک‌های فنی
| # | ریسک | احتمال | تأثیر | شدت | اقدام |
|---|------|--------|------|-----|--------|
| R1 | MSSQL 2022 عدم scalability | Medium | High | 🟡 | مانیتورینگ + index optimization |
| R2 | gRPC breaking changes هنگام ارتقا proto | Low | High | 🟡 | Backward compatible changes |
| R3 | Hangfire job failure (commission) | Low | Critical | 🔴 | Polly retry + alerting + manual trigger |
| R4 | ZarinPal downtime | Medium | High | 🟡 | Fallback queue + manual payment |
| R5 | Ingress-nginx CVE | Low | Critical | 🔴 | Regular updates + WAF |
| R6 | Disk space (SQL backups) | Medium | Medium | 🟡 | Auto cleanup + offsite backup |
### ۴.۲ ریسک‌های بیزینسی
| # | ریسک | احتمال | تأثیر | شدت | اقدام |
|---|------|--------|------|-----|--------|
| R7 | دایا Loan API تغییر | High | Medium | 🟡 | Mock mode + adapter pattern |
| R8 | تغییر درصد تخفیف باشگاه | Low | Low | 🟢 | SystemConstants قابل‌تنظیم |
| R9 | رشد سریع کاربران (>10K) | Low | High | 🟡 | Load test + horizontal scale |
| R10 | تغییر قوانین مالیاتی | Medium | Medium | 🟡 | VAT configurable |
---
## ۵. وابستگی‌های خارجی (External Dependencies)
| سرویس | وابستگی | وضعیت | SLA |
|--------|---------|--------|-----|
| **ZarinPal** | درگاه پرداخت IPG | ✅ فعال | 99.5% |
| **Kavenegar** | ارسال SMS (OTP) | ✅ فعال | 99% |
| **Daya Loan** | API وام | ⚠️ Mock mode | نامشخص |
| **Chatika** | AI Chat | ✅ فعال | 95% |
| **Docker Hub** | Base images | ✅ با mirror | — |
| **NuGet.org** | .NET packages | ✅ با Nexus cache | — |
| **Gitea** | Source control | ✅ Self-hosted | 99% |
---
## ۶. معیارهای کیفیت (Quality Metrics)
### ۶.۱ فعلی
| معیار | مقدار فعلی | هدف |
|-------|-----------|------|
| Build Success Rate | ~95% | 99% |
| Average Response Time | ~200ms | <150ms |
| gRPC Error Rate | ~2% | <1% |
| Test Coverage | ~0% | >60% |
| Uptime (Staging) | ~98% | 99% |
| Documentation Coverage | 100% | 100% ✅ |
### ۶.۲ اقدامات بهبود
| اقدام | اولویت | تأثیر |
|-------|---------|-------|
| Unit Tests اضافه شود | High | Test Coverage +40% |
| Integration Tests | Medium | Reliability +20% |
| Load Testing (k6/JMeter) | Medium | Performance insight |
| Structured Logging (Serilog) | Medium | Debug time -50% |
| Health check endpoints | Done ✅ | Uptime monitoring |
---
## ۷. Definition of Done — Release Checklist
### Pre-Release (Staging)
- [ ] همه تست‌ها پاس شوند
- [ ] Review توسط حداقل ۱ نفر
- [ ] Migration scripts اجرا شوند
- [ ] Smoke test روی staging
- [ ] مستندات بروز باشد
### Production Release
- [ ] Staging sign-off
- [ ] Database backup
- [ ] Docker images tagged
- [ ] K8s rollout
- [ ] Health check green
- [ ] Post-deploy smoke test
- [ ] Rollback plan ready
---
## ۸. خلاصه اولویت‌بندی
```
NOW (این ماه):
→ Documentation consolidation ✅ DONE
NEXT (فروردین):
→ Mobile Responsive (H2)
→ Product Bundle (H1)
→ SEO (M4)
LATER (Q2):
→ Monitoring + Logging (L3, L4)
→ PWA (L1)
→ Refund (L8)
BLOCKED:
→ Daya Loan Production (B1) — waiting on Daya
→ Manual Payment (B2) — waiting on decision
```