docs: convert all ASCII charts to Mermaid diagrams

Converted 40+ ASCII art diagrams across 12 files to Mermaid:
- flowchart TD/LR for process flows and architecture
- erDiagram for entity relationships
- graph TD for tree structures (binary tree, categories)
- gantt for roadmap sprints

Files: BUSINESS-01 to 05, TECH-01/03/04/05, OVERVIEW-01/02/05
Directory tree structures kept as plain code blocks (Mermaid N/A)
This commit is contained in:
masoodafar-web
2026-02-18 23:36:39 +03:30
parent aef6861e21
commit 1b04ba5326
12 changed files with 544 additions and 739 deletions
+43 -56
View File
@@ -18,15 +18,19 @@
## ۲. ساختار درخت باینری
```mermaid
graph TD
ROOT["Root"] --- L["Left"]
ROOT --- R["Right"]
L --- L1["L1"] & L2["L2"]
R --- R1["R1"] & R2["R2"]
L1 --- L1a["..."] & L1b["..."]
L2 --- L2a["..."] & L2b["..."]
R1 --- R1a["..."] & R1b["..."]
R2 --- R2a["..."] & R2b["..."]
```
Root
/ \
Left Right
/ \ / \
L1 L2 R1 R2
/ \ / \ / \ / \
... ... ... ... ... ← بدون محدودیت عمق
```
> ← بدون محدودیت عمق
**قوانین:**
- هر نود حداکثر ۲ فرزند (Binary) — `MaxDirectChildrenPerLeg = 1`
@@ -38,36 +42,24 @@
## ۳. فلوی عضویت و فعالسازی
```
خرید پکیج طلایی (56M تومان)
نمایش مودال قرارداد (غیرقابل‌بسته‌شدن)
مشاهده متن قرارداد ← ReadContract RPC
درخواست OTP ← RequestContractOtp (Kavenegar SMS)
وارد کردن کد ← VerifyContractOtp
امضای قرارداد ← AcceptContract
├─→ شارژ ۲ کیف پول: Balance += 56M, DiscountBalance += 112M (2×)
│ (NetworkBalance شارژ نمی‌شود — فقط برای کمیسیون)
├─→ کسر هزینه فعالسازی (25.2M از Balance)
├─→ واریز 25.2M به Pool هفتگی (ClubActivationFee)
├─→ قرارگیری در درخت باینری
└─→ رفرش JWT Token (claims جدید)
```mermaid
flowchart TD
A["خرید پکیج طلایی — 56M"] --> B["نمایش مودال قرارداد\nغیرقابل‌بسته‌شدن"]
B --> C["مشاهده متن قرارداد\nReadContract RPC"]
C --> D["درخواست OTP\nRequestContractOtp — Kavenegar"]
D --> E["وارد کردن کد\nVerifyContractOtp"]
E --> F["امضای قرارداد\nAcceptContract"]
⚠️ در خرید با وام دایا:
├─→ Balance += 56M
└─→ DiscountBalance += 112M (دو برابر — DayaLoanAmount × 2)
F --> G["شارژ ۲ کیف‌پول\nBalance += 56M\nDiscountBalance += 112M"]
F --> H["کسر فعالسازی\n−25.2M از Balance"]
F --> I["واریز 25.2M\nبه Pool هفتگی"]
F --> J["قرارگیری در\nدرخت باینری"]
F --> K["رفرش JWT Token\nclaims جدید"]
```
> ⚠️ در خرید با وام دایا: Balance += 56M, DiscountBalance += 112M (DayaLoanAmount × 2)
> NetworkBalance شارژ نمی‌شود — فقط برای کمیسیون
---
## ۴. الگوریتم محاسبه کمیسیون هفتگی
@@ -103,12 +95,15 @@
### ۴.۳ Pool هفتگی و توزیع
```mermaid
flowchart LR
A["هر فعالسازی عضو\n25.2M واریز"] --> B["Pool هفتگی"]
B --> C["sp_CalculateWeeklyBalances"]
C --> D["sp_CalculateWeeklyCommissionPool"]
D --> E["توزیع بر اساس\nUserBalance / TotalBalance"]
```
منبع Pool: هر فعالسازی عضو → 25.2M واریز به Pool
توزیع: بر اساس WeeklyBalance هر عضو / مجموع WeeklyBalance‌ها
SP: sp_CalculateWeeklyBalances → sp_CalculateWeeklyCommissionPool
فرمت هفته: "YYYY-Www" (شمسی، شنبه‌پایه)
```
> فرمت هفته: `YYYY-Www` (شمسی، شنبه‌پایه)
---
@@ -141,24 +136,16 @@ SP: sp_CalculateWeeklyBalances → sp_CalculateWeeklyCommissionPool
## ۷. یکپارچه‌سازی وام دایا
```mermaid
flowchart TD
A["Hangfire Worker\nهر ۲۰ دقیقه — */20 * * * *"] --> B["بررسی درخواست‌های pending"]
B --> C["ارسال به API دایا\nMock/Real switchable"]
C --> D["دریافت نتیجه"]
D --> E["Balance += 56M"]
D --> F["DiscountBalance += 112M\nDayaLoanAmount × 2"]
```
Hangfire Worker (هر ۲۰ دقیقه — cron: */20 * * * *)
بررسی درخواست‌های pending
ارسال به API دایا (Mock/Real switchable)
دریافت نتیجه → شارژ ۲ کیف‌پول
├─→ Balance += 56M (DayaLoanAmount)
└─→ DiscountBalance += 112M (DayaLoanAmount × 2 — دو برابر)
مجموع: 168M
Hangfire retry: [AutomaticRetry(Attempts = 3)]
```
> مجموع شارژ: 168M — Hangfire retry: `[AutomaticRetry(Attempts = 3)]`
---